Symfony компилирует аннотированные классы

Меня интересует метод Symfony\Component\HttpKernel\DependencyInjection\Extension::getAnnotatedClassesToCompile(). Если я правильно понимаю, вы можете addAnnotatedClassesToCompile() массив пространств имен классов (который использует аннотации). Затем во время прогрева кеша все аннотации этих классов прогреваются. Я прав или чего-то не хватает?

Если это правильно, то почему Symfony добавляет Symfony\Bundle\FrameworkBundle\Controller\AbstractController, Symfony\Bundle\FrameworkBundle\Controller\Controller в аннотированные классы? Я не могу найти в нем никаких аннотаций ...

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
303
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

https://symfony.com/doc/current/bundles/extension.html#adding-classes-to-compile

If some class extends from other classes, all its parents are automatically included in the list of classes to compile.

Поскольку ваши контроллеры будут расширять Controller или AbstractController, это означает, что они всегда будут проверяться на наличие аннотаций, поэтому имеет смысл кэшировать тот факт, что у них их нет. Добавление их в addAnnotatedClassesToCompile гарантирует, что это будет сделано, даже если вы не сбросили оптимизированный автозагрузчик.

Другие вопросы по теме