Symfony2 中基于约定的路由

2024-03-08

我正在尝试学习 Symfony2 中的路由是如何工作的,到目前为止我读过的所有内容都有这样的例子:

blog:
    path:      /blog/{page}
    defaults:  { _controller: AcmeBlogBundle:Blog:index, page: 1 }

这会将对 /blog/123 的请求路由到 AcmeBlogBu​​ndle 博客控制器的“index”操作,并将 123 参数作为“page”参数传递给该控制器操作。如果没有传递 page 参数,则 page 默认为 1。

这一切都很好,但是如果您只想拥有一个基于约定的路由系统来传递如下内容,该怎么办:

/{bundle}/{controller}/{action}

因此,对于这样的 URL:

/acme/blog/index

然后它会调用 AcmeBlogBu​​ndle 博客控制器的“index”操作。

不需要特定的路由配置,它只是从 URL 推断包、控制器和操作。因此您可以继续添加包、控制器和操作,并且不需要修改路由配置。它就是有效的。

如果这不可能,您至少可以从 URL 推断控制器和操作吗?例如,也许您需要一个专门标识包的路由,但是我们可以从 URL 中获取控制器和操作吗?

我通读了 Symfony“书”关于路由的页面 http://symfony.com/doc/2.2/book/routing.html,我想不出办法来做到这一点。


决不。这被认为是不好的做法,因此从 symfony 中删除了。

但你应该看看@Route http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html注释,因为它以如此好的方式简化了路由配置。直接附着在action上,配置和代码之间不存在任何缺失。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 中基于约定的路由 的相关文章

随机推荐