Symfony компилирует аннотированные классы - PullRequest
0 голосов
/ 09 ноября 2018

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

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

1 Ответ

0 голосов
/ 13 ноября 2018

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

Если какой-то класс выходит из других классов, все его родители автоматически включаются в список классов для компиляции.

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

...