【问题标题】:Changing Symfony Default Route Class更改 Symfony 默认路由类
【发布时间】:2012-03-17 10:36:44
【问题描述】:

在 symfony 的 routing.yml 中,你可以指定一个不同的类来代替 sfRoute。 即

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

但是,我希望能够更改默认类,以便所有路由都使用 sfRequestRoute,除非我另有说明。有没有办法做到这一点?我正在使用 Symfony 1.4

【问题讨论】:

    标签: routing symfony1 symfony-1.4 yaml


    【解决方案1】:

    不完全按照您想要的方式。在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}
    

    【讨论】:

    • 这并不理想,但正如您所说,如果不修改sfRoutingConfigHandler,可能无法获得理想的解决方案。感谢您提供有关 YAML 参考的提示;我不知道可以这样做。
    【解决方案2】:

    是的,你可以。 您应该更改应用程序中的 routing.yml。 Symfony factories.yml

    例如:

    all:
      routing:
        class: sfRequestRoute
    

    我测试过,效果很好

    【讨论】:

    • 当我尝试它时,我得到传递给 sfRoute::__construct() 的参数 2 必须是一个数组,给定 null,在 /somefolder/symfony-1.4.11/lib/routing/sfRequestRoute.class 中调用.php
    • 哦……一开始没明白你的意思,现在明白了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2019-07-21
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多