我需要知道如何在我的zend应用程序的bootstrap文件中获取当前模块名称。在页面加载时,我正在向Web服务请求,通过发送散列cookie和令牌来获取当前用户信息。问题是我只需要在我的3个模块中的两个模块中执行此操作,因此我需要能够提出示例。
if($ moduleName!==“filteredmodule”){ //做请求 }
感谢。
答案 0 :(得分:5)
Bootstrap用于准备应用程序。我建议你在一个Controller插件(你可以使用它来获取当前被调用的模块)或控制器的init()函数中进行这种调用。
这是通过控制器插件获取当前模块的方法:
<?php
final class YourApp_Controller_Plugin_YourPluginName extends Zend_Controller_Plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$module = $request->getModuleName(); //This is the module
文档:http://framework.zend.com/manual/en/zend.controller.plugins.html
答案 1 :(得分:0)
关于阿什利回答的一件事:
如果你想做
$module = $request->getModuleName();
尽快,然后在routeShutdown()中进行。
正如文档所述,“在路由器上调用Zend_Controller_Front之前调用”routeStartup()来评估针对已注册路由的请求。在路由器完成路由请求后调用routeShutdown()。“
因此路由相关的请求参数(如模块,控制器,操作或路由中指定的任何其他参数)将可在routeShutdown()和更高版本的函数中访问。