Controller_Plugin的奇怪行为

时间:2011-03-15 06:22:42

标签: zend-framework plugins request

在这个例子中,我希望每次进入控制器时将名为“test”的会话变量增加1。如果注释方法preDispath的内容工作正常但是使用这个精确的例子,会话变量“test”每次增加3或5。 我使用Zend Framework 1.11.4

为什么???我希望你理解我的问题。

请记住,此示例仅用于显示preDispatch方法的奇怪行为

我的插件

class App_Plugins_Permisos extends Zend_Controller_Plugin_Abstract{
    public function  __construct(){}
    public function  preDispatch(Zend_Controller_Request_Abstract $request) {
        $request->setModuleName('default');
        $request->setControllerName('index');
        $request->setActionName('index');        
    }
}

我的引导程序

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{
    protected function _initSession(){
        Zend_Session::start();
    }
    protected function _initPlugins(){
        $this->bootstrap('frontcontroller');
        $this->frontController->registerPlugin(new App_Plugins_Permisos());
    }
}

我的控制器

class IndexController extends Zend_Controller_Action{
    public function init(){}
    public function indexAction(){
        $s = new Zend_Session_Namespace('test');
        if(isset($s->test)){
            $s->test++;
        }else{
            $s->test = 1;
        }
        Zend_Debug::Dump($s->test);
        die();
    }
}

非常感谢

1 个答案:

答案 0 :(得分:0)

尝试放入.ini resources.frontController.plugins.foo =" My_Plugin_Foo"

如果作品告诉我! TNKS

相关问题