2012-02-27 159 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