关于zend dispatch循环的问题

我正在使用Zend Framework构建一个网站,我在调度循环方面遇到了一些麻烦。 通常,Zend Framework URL以这种方式构建:http://www.domain.com/module/controller/action。 在我的网站上,我使用的是自定义动态URL,它通过自定义方法在调度循环中解析。因此,在解析之后,这些URL中的每一个都将执行特定控制器和模块的特定操作。 我需要执行一些依赖于解析的模块,控制器和操作的任务。问题是我只能在dispatchLoopShutdown发生时知道解析的模块,控制器和动作。我需要执行的任务将设置一些cookie,这些cookie将对将发送到浏览器的输出进行更改。 但是,此时,视图已经呈现,并且发生dispatchLoopShutdown时设置的cookie不会相应地更改输出。 所以,我的问题是......有没有办法强制再次渲染视图?或者在dispatchLoopShutdown之前知道将执行哪些模块,控制器和操作的方法?我也尝试在postDispatch上完成这个,但结果是一样的! 希望我能正确解释我的问题。 谢谢您的帮助。     
已邀请:
这是一个关于Zend Framework序列的好架构。 您可以使用控制器插件在分发之前了解模块,控制器和操作:
<?php
class Custom_Controller_Plugin_CheckRoute extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch($request)
    {
        //Get Request
        $controller = $request->controller;
        $action     = $request->action;
        $module     = $request->module; 

        //=> perform actions before dispatch

        //Update the Request
        $request->setModuleName('default')
            ->setControllerName('index')
            ->setActionName('action2');
    }
}
?>
    
我有同样的问题。它由Zend_Controller_Plugin_ActionStack解决。我在dispatchLoopShutdown中添加了一些实现逻辑的操作。此链接非常有用http://framework.zend.com/manual/1.12/en/zend.controller.plugins.html#zend.controller.plugins.standard.actionstack     

要回复问题请先登录注册