Symfonyob娱乐下载 6.2新增功能:PSR-4路由加载器
2022年11月8日·发表的哈维尔Eguiluz
ob娱乐下载Symfony 6.2是支持通过Les-Tilleuls.coop.Les-Tilleuls.coop是a team of 70+ Symfony experts who can help you design, develop and fix your projects. We provide a wide range of professional services including development, consulting, coaching, training and audits. We also are highly skilled in JS, Go and DevOps. We are a worker cooperative!
在您的Symfoob娱乐下载ny应用程序中,您可能有一个类似于以下的配置:
1 2 3 4
#配置/ routes.yaml控制器:资源:. . / src /控制器/类型:属性
这告诉Symfony查ob娱乐下载找该目录中定义的所有PHP文件,并在这些文件的类中加载定义为PHP属性的路由。在内部,它使用AnnotationDirectoryLoader而且AnnotationFileLoader来查找路由注释。
更具体地说,AnnotationDirectoryLoader
递归查找所有PHP文件和AnnotationFileLoader
检查它们的内容,使用PHPtoken_get_all ()函数获取在文件中找到的第一个类的完整类名。整个进程都被缓存,所以它只在第一次影响性能。
但是,由于所有现代PHP项目都使用PSR-4级自动装填这一切都是不必要的。PSR-4为给定的全限定类名定义了相应的文件路径(反之亦然),因此不需要猜测是哪个类定义了每个文件。
在Syob娱乐下载mfony 6.2中,我们将介绍一个新的PSR-4路由加载器,它类似于注释路由加载器,但查找路由更快,因为它假定项目文件遵循PSR-4。参见Psr4DirectoryLoader代码.
在你的应用程序中唯一需要改变的是定义你的控制器类使用的PSR-4命名空间:
1 2 3 4 5 6 7
#配置/ routes.yaml控制器:—resource: ../src/Controller/+资源:+路径:../src/Controller/+命名空间:应用程序\控制器类型:属性
除了上面显示的YAML配置之外,还使用了名称空间
选项在XML和PHP配置中也受支持。
发表在#生活在边缘
评论
尼古拉斯Toniazzi
2022年11月10日在09:07
> PSR-4为给定的全限定类名定义相应的文件路径(反之亦然)
如果是这样,'路径'属性在资源配置是冗余的,应该可以省略它?
如果是这样,'路径'属性在资源配置是冗余的,应该可以省略它?
@尼古拉斯,这是一个非常好的问题。我们内部对此进行了讨论。
确实,它看起来是多余的,但如果删除它,您需要知道(或以某种方式找到)要加载的PHP文件/类的根目录。通常是src/Controller/,但也不总是这样。所以,你必须在“作曲家”中寻找。json”配置,这将结合该功能与Composer。
最后,我们认为这个小冗余是更好的,因为你很少配置它,而另一种选择会更糟糕。欢呼。
确实,它看起来是多余的,但如果删除它,您需要知道(或以某种方式找到)要加载的PHP文件/类的根目录。通常是src/Controller/,但也不总是这样。所以,你必须在“作曲家”中寻找。json”配置,这将结合该功能与Composer。
最后,我们认为这个小冗余是更好的,因为你很少配置它,而另一种选择会更糟糕。欢呼。
返回静态函数(RoutingConfigurator $ RoutingConfigurator): void {
routingConfigurator - >导入(“. . / . ./ src /控制器/”、“注释”);
},“‘
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now