Тонкости настройки контейнера 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