Опубликовано:
Новое в 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
{
// ...
}