Symfonyob娱乐下载 5.1新增功能:路由注释优先级
2020年3月16日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
尼古拉斯Grekas
在# 35608.
ob娱乐下载Symfony路由可以包括可变部分参数来匹配具有相同结构的不同url。尽管你可以限制数值对于每个路由参数,可以有两个或多个路由匹配同一个URL。
在这些情况下,Symfony使ob娱乐下载用先定义的路由。如果您使用YAML、XML或PHP文件定义路由,则可以根据需要重新排序路由。然而,当使用注释定义路由时,重新排序可能会困难得多。
这就是为什么在Symfonyob娱乐下载 5.1中我们添加了一个路由优先选项,但仅用于注释。与Symfony的其他部分一样,优先级是一个默认为的正ob娱乐下载整数或负整数0
.该值越高,路由优先级越高:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
使用ob娱乐下载\包\FrameworkBundle\控制器\AbstractController;使用ob娱乐下载\组件\路由\注释\路线;类MyController扩展AbstractController{/ * * *@Route("/{some_parameter}", name="route1") */公共函数someMethod():响应{/ /……}/ * * *@Route("/foo", priority=10, name="route2") */公共函数anotherMethod():响应{/ /……}}
在Syob娱乐下载mfony 5.1中,当接收到/ foo
URL, ob娱乐下载Symfony将匹配route2
因为它的优先级是10
(和route1
优先级是默认值0
).
发表在#生活在边缘
评论
Prawee Wongsa
2020年3月16日说在11:42
好工作
Sergiu Popa
2020年3月16日说在13:03
这是引入路由注释后所需要的。非常感谢!
克里斯蒂安·Ionascu
2020年3月16日说在十五11
我总是同时使用需求和逻辑顺序,这很方便!
穆罕默德Abdeljalil
2020年3月16日说在16:51
干得好尼古拉斯:)
弗拉基米尔•Sadicov
2020年3月17日说在07:52
哦吼! !这是一个很棒的功能,我已经等了很久了!!
奥列格Kochetkov
2020年3月17日说在08:39
好消息!欧宝平台是合法的吗谢谢你们了!
Guillaume Sainthillier
2020年3月17日说在20
好了!我们可以在一些路线上设置负面优先级吗?
克利斯朵夫Gauton
2020年3月17日说在18:14
2016年的讨论很清楚:“这个问题中提到的这种冲突大多发生在一个文件的上下文中,所以重新组织一个文件很容易。
https://github.com/ob娱乐下载symfony/symfony/issues/18415
所以我使用了“需求”注释,我认为这比“优先级”更清楚。当您或其他人阅读您的代码时,您可以看到匹配将不起作用。因为它在regexp中,而不仅仅是一个数字。优先级可能更容易写。
但知道事情可以改变还是很好的!
https://github.com/ob娱乐下载symfony/symfony/issues/18415
所以我使用了“需求”注释,我认为这比“优先级”更清楚。当您或其他人阅读您的代码时,您可以看到匹配将不起作用。因为它在regexp中,而不仅仅是一个数字。优先级可能更容易写。
但知道事情可以改变还是很好的!
@Guillaume是的,你可以使用消极优先级。博客文章中提到了:)
@Christophe你是对的。为路由添加限制来控制URL匹配感觉更好。然而,有时候(例如,对于全抓路由)优先级是一个更好的解决方案(例如,给全抓路由一个大的负优先级,你的大多数问题都会得到解决)。
@Christophe你是对的。为路由添加限制来控制URL匹配感觉更好。然而,有时候(例如,对于全抓路由)优先级是一个更好的解决方案(例如,给全抓路由一个大的负优先级,你的大多数问题都会得到解决)。
Sidi LEKHALIFA
2020年4月5日说在二二
谢谢,太棒了!
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
Ahmed TAILOULOUTE is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now