在我的生產系統,我得到一個錯誤在symfony的路由器:編譯失敗:無與倫比的括號中appstageUrlMatcher.php
警告:的preg_match()[function.preg匹配]:編譯 失敗:括號不匹配在 /mypath/app/cache/prod/appprodUrlMatcher.php線205
而在本地機器上工作得很好另一臺服務器上的偏移60。
我挖的緩存和路由的模式是不同的:
工作我的dev的服務器:
#^/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生成,對吧?那麼,爲什麼這些模式不同?
畢竟爲什麼它不工作?有人有任何線索嗎?