Zend Framework:Bootstrap中的模块名称

时间:2011-01-31 14:45:57

标签: zend-framework module bootstrapping

我需要知道如何在我的zend应用程序的bootstrap文件中获取当前模块名称。在页面加载时,我正在向Web服务请求,通过发送散列cookie和令牌来获取当前用户信息。问题是我只需要在我的3个模块中的两个模块中执行此操作,因此我需要能够提出示例。

if($ moduleName!==“filteredmodule”){    //做请求 }

感谢。

2 个答案:

答案 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()和更高版本的函数中访问。