Просте управління умовним контекстом за допомогою фасаду Context у Laravel

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Завдяки новому трейту Conditionable у фасаді Context Laravel ви можете елегантно управляти контекстними даними, використовуючи виразну умовну логіку. Досліджуйте, як спростити керування даними та створити більш послідовний код у вашому додатку, читаючи цей корисний матеріал!

Елегантно керуйте контекстними даними за допомогою Context Facade в Laravel, тепер з можливістю використання трейту Conditionable. Ця потужна комбінація дозволяє легко застосовувати умовну логіку при обміні даними в додатку.

Context::when(
    auth()->user()->isAdmin(),
    fn ($context) => $context->add('user', ['key' => 'other data', ...auth()->user()]),
    fn ($context) => $context->add('user', auth()->user()),
);

У наведеному коді показано, як умовно додавати різні дані користувача в контекст на основі його адміністративного статусу. Це створює більш структурований підхід до специфічної поведінки контексту.

// Додаємо різні фічі в залежності від середовища
Context::when(
    app()->environment('production'),
    fn ($context) => $context->add('features', ['beta' => false]),
    fn ($context) => $context->add('features', ['beta' => true])
);
 
// Додаємо дозволи користувача на основі ролі
Context::when(
    auth()->user()->isAdmin(),
    fn ($context) => $context->add('permissions', 'all'),
    fn ($context) => $context->add('permissions', 'limited')
);

З методами, такими як when та unless, управління контекстом стає зрозумілішим і легшим для обслуговування. Цей підхід особливо важливий під час налаштування конфігурацій на основі ролей, специфічних для середовища чи функціоналу у вашому додатку. Консолідуючи умовну логіку безпосередньо в управлінні контекстом, ви зменшуєте кількість розкиданих операторів if/else, створюючи більш зв'язний і самодокументований код.

Популярні

Logomark Logotype

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel