[英]Doubts around Symfony2 Routing component usage
我正在设置FOSRestBundle,并且有一些疑问,不知道是否与Symfony2 Routing组件有关,或者可以通过其他任何方式完成。 这里,
1)在执行该方法之前,如何检查请求标头上是否设置了X-PDONE-SESSION-ID
? 可以使用路由注释来完成此操作吗? 关于如何检查的任何想法?
2)我需要使用此RegEx \\b(?:(?:https?):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]
@QueryParam(name="token", requirements="")
\\b(?:(?:https?):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]
@QueryParam(name="token", requirements="")
\\b(?:(?:https?):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]
作为@QueryParam(name="token", requirements="")
路由中的requirements
,用于检查有效的URL,如何?
(1)可以使用您所引用的书中没有帮助的方法中描述的方法来完成:
如您所见,可以创建一条路由以仅匹配某些路由通配符(通过正则表达式),HTTP方法或主机名。 但是使用条件可以将路由系统扩展为具有几乎无限的灵活性:
联系人:路径:/ contact默认值:{_controller:AcmeDemoBundle:Main:contact}条件:“ ['GET','HEAD']和request.headers.get('User-Agent')中的context.getMethod()匹配' /火狐/ I'”
条件是一个表达式,您可以在此处了解更多有关其语法的信息: 表达式语法 。 这样,除非HTTP方法是GET或HEAD并且
User-Agent
标头与firefox匹配,否则路由将不匹配。
在(2)中,您将显示一个用于完整URL的正则表达式,而不仅仅是查询参数。 据我所知,默认情况下不可能更改路由组件使用的整个正则表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.