Новое в Symfony 7.2: Атрибут WhenNot

Источник: «New in Symfony 7.2: WhenNot Attribute»
В Symfony 7.2 появился атрибут WhenNot, позволяющий исключить сервис из определённого окружения.

В Symfony 5.3 мы ввели атрибут #[When] как способ ограничить сервисы определёнными конфигурационными средами:

use Symfony\Component\DependencyInjection\Attribute\When;

// Этот класс зарегистрирован только в среде "dev".

#[When(env: 'dev')]
class SomeClass
{
// ...
}

Это хорошо работает, но при работе с многочисленными реализациями сервисов (например, для тестов) может быть обременительно определять атрибут #[When] для каждого сервиса. Поэтому в Symfony 7.2 мы вводим противоположный атрибут: #[WhenNot].

Новый атрибут позволяет исключить сервис из определённых сред:

use Symfony\Component\DependencyInjection\Attribute\WhenNot;

#[WhenNot(env: 'dev')]
class SomeClass
{
// ...
}

// добавьте атрибут несколько раз, чтобы исключить из нескольких окружений

#[WhenNot(env: 'dev')]
#[WhenNot(env: 'test')]
class AnotherClass
{
// ...
}

Комментарии


Дополнительные материалы

Предыдущая Статья

Конфигурирование middleware в Laravel 11

Следующая Статья

Не используйте одну и ту же модель для записи и чтения