Просте управління умовним контекстом за допомогою фасаду 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

Випущено Livewire 3.6

Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!