Php zend调度循环问题
我正在使用Zend框架构建一个网站,我在调度循环方面遇到了一些问题 通常情况下,Zend Framework URL的构建方式为: 在我的网站上,我使用自定义的动态URL,这些URL通过自定义方法在分派循环中解析。因此,这些URL中的每一个在被解析后都将执行特定控制器和模块的特定操作 我需要执行一些任务,这些任务取决于解析的模块、控制器和操作。问题是我只能在dispatchLoopShutdown发生时知道解析的模块、控制器和操作。我需要执行的任务将设置一些cookie,这些cookie将对发送到浏览器的输出进行更改 但是,此时视图已经呈现,并且在dispatchLoopShutdown发生时设置的cookie不会相应地更改输出 所以,我的问题是。。。有没有办法强制重新渲染视图?或者在dispatchLoopShutdown之前了解将执行哪些模块、控制器和操作的方法?我也尝试在postDispatch上完成这一点,但结果是一样的 希望我能正确地解释我的问题Php zend调度循环问题,php,zend-framework,view,dispatch,Php,Zend Framework,View,Dispatch,我正在使用Zend框架构建一个网站,我在调度循环方面遇到了一些问题 通常情况下,Zend Framework URL的构建方式为: 在我的网站上,我使用自定义的动态URL,这些URL通过自定义方法在分派循环中解析。因此,这些URL中的每一个在被解析后都将执行特定控制器和模块的特定操作 我需要执行一些任务,这些任务取决于解析的模块、控制器和操作。问题是我只能在dispatchLoopShutdown发生时知道解析的模块、控制器和操作。我需要执行的任务将设置一些cookie,这些cookie将对发送
谢谢您的帮助。这里有一个关于Zend框架序列的好模式 通过使用控制器插件,您可以在调度前了解模块、控制器和操作:
<?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_控制器_插件_操作堆栈解决。我添加了一些操作,其中实现了dispatchLoopShutdown的逻辑。这个链接可能是有用的:你可能想考虑使用控制器路由器,我需要设置一些规则来匹配请求的URL。我必须创建一个“捕获所有”规则并解析它们…在dispatchLoopShutdown之前,执行postDispatch。你是否考虑过使用一个控制器插件来执行一个单独的动作(即在插件中编写邮政调度方法)?我试着写POST调度方法,但是它每循环一次执行我的任务一次。我只需要在最后一次迭代中执行任务,在那里我知道最终解析的操作是什么。