2012-02-27 131 views
0

在symfony的routing.yml中,您可以指定一個不同的類來代替sfRoute。 即更改Symfony默認路由類

routeName: 
url: /url/blah 
class: sfRequestRoute 
param: {module: mymod, action: myaction} 
requirements: 
    sf_method: [get] 

不過,我想能夠更改默認類,以便所有路由都使用sfRequestRoute除非我另行指定。有沒有辦法做到這一點?我正在使用Symfony 1.4

回答

2

不完全符合您的要求。像這樣的東西可以在config/factories.yml找到。但是在這種情況下,默認值被硬編碼爲sfRoutingConfigHandler。你可以嘗試重寫,但它似乎爲一個簡單的精密很多工作。相反,我會僅僅指剛使用YAML參考:

routeName: 
url: /url/blah 
class: &defRouteClass 'sfRequestRoute' 
param: {module: mymod, action: myaction} 
requirements: 
    sf_method: [get] 

anotherRouteName: 
    url: /url/blah2 
    class: *defRouteClass 
    param: {module: mymod, action: myotheraction} 
+0

這並不理想,但正如你所說,一個理想的解決方案可能無法使用,而無需修改sfRoutingConfigHandler。感謝YAML參考資料的提示;我不知道這可以做到。 – Daniel 2012-02-28 14:28:36

1

是的,可以。 您應該在應用程序中更改routing.yml。 Symfony factories.yml

例如:

all: 
    routing: 
    class: sfRequestRoute 

我測試,它工作正常

+0

多數民衆贊成在奇怪的...應該爲路由類,而不是路線類,即sfRouting'不'sfRoute'的子類。 – prodigitalson 2012-02-28 16:12:11

+0

當我嘗試了它,我得到了參數2傳遞給sfRoute :: __構造()必須是一個數組,空給出,調用/somefolder/symfony-1.4.11/lib/routing/sfRequestRoute.class.php – Daniel 2012-02-28 17:01:09

+0

哦...起初我不明白你的意思,但現在已經意識到了 – Mikhail 2012-02-28 18:49:08