Symfony 编译注释 类

Symfony compile annotated classes

我对 Symfony\Component\HttpKernel\DependencyInjection\Extension::getAnnotatedClassesToCompile() 方法感兴趣。如果我理解正确,您可以 addAnnotatedClassesToCompile() 一个 类 数组(使用注释)命名空间。然后在缓存预热期间,所有这些 类 注释都会预热。我说得对还是漏了什么?

如果它是正确的,那么为什么 symfony 将 Symfony\Bundle\FrameworkBundle\Controller\AbstractControllerSymfony\Bundle\FrameworkBundle\Controller\Controller 添加到带注释的 类 中?我在里面找不到任何注释...

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.

由于您的控制器将扩展 ControllerAbstractController,这意味着将始终检查它们是否有注释,因此缓存它们具有 none 的事实是有意义的。将它们添加到 addAnnotatedClassesToCompile 可确保即使您没有转储优化的自动加载器也能完成此操作。