如何在不在Zend_framework中呈现响应的情况下调度已保存的请求

时间:2011-04-17 04:22:22

标签: zend-framework controller views request

我想执行保存的请求。这就是我做的。 我将请求对象序列化为db,然后当用户激活他们的帐户时,我需要重播此请求。 我用这种方式重播请求:

 $front = Zend_Controller_Front::getInstance();
 $front->returnResponse(true);
 $response = $front->dispatch($request); 

但这总是会将用户带到原始请求的页面,我不想这样做。我只想在没有用户注意的情况下在后端执行保存的请求。那么如何防止front_controller的调度操作自动转发或呈现原始请求的响应呢?

我检查了Zend框架,它说,将retureResponse设置为true,响应将被响应而不是显示。但它不是这样的。我钻进了前控制器,似乎调度员只是直接发出请求。

那么他们在后端的zend框架中执行保存的请求对象有什么好的解决方案吗?

谢谢

2 个答案:

答案 0 :(得分:0)

您必须等到现有请求结束才能执行此操作。如果我理解你,这应该工作。

您决定何时运行存储的请求。

Zend_Registry::set('runStoredRequest', true);

然后在您完成初始请求(在引导程序底部)后的引导程序中添加以下内容:

if(Zend_Registry::get('runStoredRequest')) {
    /** RETRIEVE AND RUN STORED REQUEST **/
}

答案 1 :(得分:0)

查看Zend_Test_PHPUnit_ControllerTestCase::dispatch()。这听起来有点像你想做的那样。