3

我需要创建一些特定于模块的路由,但没有在路由中明确提及模块名称。现在,我为每个模块(MODULE/configs/module.ini)提供了单独的配置文件,并且在模块引导程序中,我将这些路由推送到 Zend 框架中。INI 文件包含路由信息,但它在路由中提到了模块名称。例如

routes.contents.route = "Contents/(.*)" routes.contents.defaults.module = 内容 routes.contents.defaults.controller
=
index routes.contents.defaults.action
= index
+有关路由的其他详细信息。

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

4

1 回答 1

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"

上面的“路由”使用正则表达式匹配 - mysite.com/somethingawesome/whatever 并将其路由到模块:ModuleName、控制器 AwesomeController.php 并运行coolAction()

您可以在此正则表达式中进行许多其他匹配,但字符串 'somethingawesome' 完全取决于您。这完全取决于您要在 URL 中匹配的内容以及要将其发送到的位置。

于 2010-11-23T16:06:56.570 回答