Выбор ответа Junior Symfony кратко обновлено
Автоконфигурация сервисов Symfony
Вопрос
Как в Symfony 6/7 сервис получает зависимости без ручного описания в services.yaml?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Autowiring по типам конструктора и autoconfigure по интерфейсам. По умолчанию все классы из src/ регистрируются как сервисы, autowire: true подставляет зависимости по типам, а autoconfigure: true добавляет теги по интерфейсам (например, подписчики событий).
Варианты ответа
- Autowiring по типам конструктора и autoconfigure по интерфейсамправильный ответ
- Через статические вызовы
Container::get()в конструкторе сервиса - Через глобальные переменные, которые заполняет
Kernelпри старте - Через рефлексию на каждый запрос без кеширования контейнера
Разбор
По умолчанию все классы из src/ регистрируются как сервисы, autowire: true подставляет зависимости по типам, а autoconfigure: true добавляет теги по интерфейсам (например, подписчики событий). Важно, что контейнер компилируется один раз и кешируется в PHP-код, поэтому рефлексии на каждом запросе нет, в отличие от наивной реализации.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.