Тонкости настройки контейнера Symfony
Создание псевдонимов классов (alias)
Для создания alias необходимо выбрать класс, для которого мы хотим его сделать и добавить следующий код в services.yaml
services:
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
notifier:
class: App\Utils\Notifier
Подмена реализации класса в части контейнера
Допустим возникла необходимость быстро изменить реализацию уже существующего класса, но только в некоторых частях контейнера, например в одном модуле.
Тогда в файле services.yaml который отвечает за нужый модуль, добавим следующий код
services:
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
bind:
App\Main\NotifierInterface: '@notifier'
notifier:
class: App\Utils\Notifier
В результате везде, где был использован интерфейс App\Main\NotifierInterface, будет подставлена реализация из псевдонима App\Utils\Notifier