Zend Framework中的模块特定路由,而不指定路由中的模块名称

时间:2010-11-23 14:40:42

标签: zend-framework zend-route

我需要创建一些特定于模块的路由,但是没有在路由中明确提到模块名称。现在我有每个模块(MODULE / configs / module.ini)的单独配置文件,在模块引导程序中,我将这些路由推送到Zend Framework。 INI文件保存路由信息,但它提到路由中的模块名称。 e.g。

routes.contents.route =“Contents /(.*)”
routes.contents.defaults.module =内容
routes.contents.defaults.controller = index
routes.contents.defaults.action = index
+关于路线的其他细节。

您可以看到路径中明确提到了模块名称(“Contents”)。我想要的是在路线中我只提到模块名称后面的部分,它会自动在路径前面添加模块名称。所以稍后如果我将模块重命名为CMS,我不会将每条路径都改为“CMS / xxxx”。

1 个答案:

答案 0 :(得分:0)

您指定的“路线”可以是您想要的任何东西。如果Zend Framework与之匹配,它将根据下面设置的默认值执行路由。

resources.router.routes.products.regex = "somethingawesome/(.*)"
resources.router.routes.products.defaults.module = "ModuleName"
resources.router.routes.products.defaults.controller = "awesome"
resources.router.routes.products.defaults.action = "cool"

上面的'route'使用正则表达式匹配 - mysite.com/somethingawesome/whatever并将其路由到模块:ModuleName,controller AwesomeController.php并运行coolAction()

在这个正则表达式中你可以做很多其他的匹配,但字符串'somethingawesome'完全取决于你。这都是关于您想要在URL中匹配的内容以及您要将其发送到的位置。