Сервисы и автомонтирование в Symfony | OTUS

Сервисы и автомонтирование в Symfony

Любая часть работы, которая проделывается в Symfony, выполняется объектом. Например, объект Логгер выполняет логирование, а объект Twig отвечает за отображение шаблонов. Эти объекты называют сервисами.

4-1801-ce63c6.png

Выше -- лишь часть полного списка. А по мере добавления пакетов, данный перечень будет расти.

Создание сервисов

Используя Symfony, вы можете создавать собственные сервисы — это поможет сделать код более упорядоченным. Допустим, вы желаете сгенерировать какое-нибудь случайное приветствие (к примеру, «Hey», «Yo», «Aloha» и т. п.). Соответствующий код совсем необязательно помещать напрямую в контроллер. Вместо этого создайте новый класс:

1-1801-2b4444.png

И теперь у вас появилась возможность использовать это в контроллере незамедлительно:

2-1801-a3d7d0.png

В результате Symfony инстанциирует GreetingGenerator, а потом передаст его в качестве аргумента, при этом все произойдет автоматически. Возникает вопрос: можно ли точно так же перемещать в GreetingGenerator логику логгера? Ответ — да. У разработчика существует возможность использовать автомонтирование внутри сервиса, что позволит получить доступ и к другим сервисам. Правда, следует учесть, что все выполняется в конструкторе:

3-1801-f63670.png

И это работает: никакой конфигурации, да и время сэкономлено.

По материалам https://symfony.com/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто