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

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 11 квітня, 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, створюючи більш зв'язний і самодокументований код.