Елегантно керуйте контекстними даними за допомогою 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, створюючи більш зв'язний і самодокументований код.