2012-07-23 85 views
1

在我的生產系統,我得到一個錯誤在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生成,對吧?那麼,爲什麼這些模式不同?
畢竟爲什麼它不工作?有人有任何線索嗎?

回答

0

這不是一個symfony問題,而是這臺Solaris機器上PHP 5.3.6版本中的一個錯誤。
常量INF返回浮點數(0)這會導致路由爆炸。

查看更多這裏:php INF has value zero