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

Zend framework 如何在routeStartup插件方法中获取请求属性?,zend-framework,Zend Framework,我正在开发一个多语言应用程序,并使用带有翻译段的路由。对于多语言支持,我创建了特殊的多语言插件 要使用翻译的段,我需要在路由初始化之前为Zend_控制器_路由器_路由设置转换器。因此,在我的插件中,唯一可能的地方是routeStartup方法,但这里有一个问题-为了确定正确的区域设置,我需要使用请求的属性(Zend_Controller_request_Abstract),比如模块、控制器和动作名称,但它们在routeStartup方法中尚未定义。例如,它们已经在routeShutdown中定义

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

要使用翻译的段,我需要在路由初始化之前为Zend_控制器_路由器_路由设置转换器。因此,在我的插件中,唯一可能的地方是routeStartup方法,但这里有一个问题-为了确定正确的区域设置,我需要使用请求的属性(Zend_Controller_request_Abstract),比如模块、控制器和动作名称,但它们在routeStartup方法中尚未定义。例如,它们已经在routeShutdown中定义了,但我不能在那个里为route设置translator,因为它必须在routes init之前完成

那么我能做什么:

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

  • 或者我可以稍后在routeShutdown中重新设置转换器吗

注:有一个问题与完全相同的问题,但建议的答案不是我的选择,因为我不能仅仅用正则表达式从url检索语言代码,我有更复杂的代码来定义正确的语言代码


谢谢。

把代码放进去怎么样?当我需要检查此人是否登录时,我个人会这样做。也许你也可以把代码移到那里?

把代码放进去怎么样?当我需要检查此人是否登录时,我个人会这样做。也许你也可以把你的代码移到那里?

你能给我们提供一些你正在使用的代码吗?据我所知,没有办法做到我想要的。所以我必须解析url,不仅要得到语言代码,还要得到其他必要的信息,比如当前模块,并定义一些规则来确定模块是否是多语言的,以及其他。它不像我所希望的那样灵活,但至少目前还可以正常工作。大多数多语言网站使用区域设置或语言代码启动url的主要原因是为了避免这个问题。我肯定会建议您创建一种简单的方法来确定所需的语言。这可以是通过域名(如果每种语言在不同的域上提供)或通过url中的固定值。您甚至可以自己创建一个非常简单的url解析器,并将一个或多个部分提供给翻译查找表,以找出它属于哪种语言。无论如何,语言永远不应该基于模块/控制器/动作本身来定义。你能提供一些你正在使用的代码吗?据我所知,没有办法按照我的意愿来做。所以我必须解析url,不仅要得到语言代码,还要得到其他必要的信息,比如当前模块,并定义一些规则来确定模块是否是多语言的,以及其他。它不像我所希望的那样灵活,但至少目前还可以正常工作。大多数多语言网站使用区域设置或语言代码启动url的主要原因是为了避免这个问题。我肯定会建议您创建一种简单的方法来确定所需的语言。这可以是通过域名(如果每种语言在不同的域上提供)或通过url中的固定值。您甚至可以自己创建一个非常简单的url解析器,并将一个或多个部分提供给翻译查找表,以找出它属于哪种语言。无论如何,语言不应该基于模块/控制器/动作本身来定义。