Новое в Symfony 7.2: Атрибут WhenNot
Опубликовано:
В 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
{
// ...
}