在我的生产系统上,symfony 路由器出现错误:
警告:preg_match() [function.preg-match]:编译失败:/mypath/app/cache/prod/appprodUrlMatcher.php 第 205 行中偏移 60 处的括号不匹配
而在本地机器和另一台服务器上它工作正常。
我在缓存中挖掘,路线的模式不同:
在我的开发服务器上工作:
#^/hotels/(?<groupId>[^/\\-]+)\\-(?<groupName>[^\\-]+)$#s
不从事生产:
#^/hotels(?:/(?<groupId>[^/\\-]+)(?:\\-(?<groupName>[^\\-]+))?)?)?$#s
路线是:
hotel:
pattern: /hotels/{groupId}-{groupName}
defaults: { _controller: "MyBundle:Hotel:hotel", requirements:{ groupName: "[a-zA-Z1-9\+\/]+" } }
我在 github 上阅读了一些问题,即在使用旧的 PCRE 时可能会出现类似的错误。
https://github.com/symfony/symfony/issues/4093
你的我的似乎足够新:PHP 5.3.6 和 PCRE 版本 8.11。
我在 Solaris 上。
这些模式是由 symfony 生成的,对吧?那么,为什么模式不同呢?
毕竟为什么它不起作用?有人有任何线索吗?