pink2floyd
@pink2floyd

Как symfony загружает классы через входные данные?

Например:

public function createProduct(ValidatorInterface $validator): Response
{
...
}

Где и как происходит загрузка этих классов ? Читаю документацию там это как данность или может где-то упустил.
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
@Flying
Этому посвящена добрая часть документации компонента Dependency Injection и Service Container'а, который является центральной частью этого компонента.

Если совсем вкратце - то вы либо описываете сервисы вручную через конфигурацию (есть несколько поддерживаемых форматов, включая аннотации, хотя они вроде реализуются внешним пакетом) либо используете преимущества autowiring'а, предоставляя Symfony всё описать за вас (с помощью compiler pass'ов, если потребуется). Собственно основная "магия" преобразования всех источников данных в кучу компилированного PHP находится как раз в compiler pass'ах, их много и можно писать свои.

Поскольку у вас в примере - controller's action - то здесь вся магия реализуется через обработку тега controller.service_arguments, который по-умолчанию добавляется ко всем контроллерам в конфиге сервисов.
Ответ написан
@sadCake
ValidatorInterface $validator
Это имеется ввиду? Если да, то через dependency injection. Его можно включить/выключить в services
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы