如何在routeStartup插件方法中获取请求属性?

时间:2012-02-01 10:48:12

标签: zend-framework

我正在开发一个多语言应用程序,并使用带有翻译段的路由。对于多语言支持,我创建了特殊的多语言插件。

要使用已翻译的片段,我需要在路由初始化之前为Zend_Controller_Router_Route设置转换器。所以在我的插件中只有可能的地方是 routeStartup 方法,但是这里有一个问题 - 为了确定正确的语言环境我需要使用请求的属性(Zend_Controller_Request_Abstract),比如模块,控制器和动作名称,但是它们还没有在routeStartup方法中定义。例如,它们已在routeShutdown中定义 - 但我无法在那里设置转换器,因为它必须在路由初始化之前完成。

那我该怎么做:

  • 我可以在routeStartup中以某种方式获取请求属性

  • 或者我可以稍后在routeShutdown中重新设置翻译器

PS:有一个问题有完全相同的问题Zend_Controller_Router_Route: Could not find a translator,但建议的答案不适合我,因为我不能只用Regex从url检索语言代码,我有更复杂的代码定义正确的语言代码。

感谢。

1 个答案:

答案 0 :(得分:0)

如何将代码放入preDispatch?当我需要检查此人是否已登录时,这就是我个人所做的事情。也许您也可以将代码移到那里?