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



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

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

但是这总是会把用户带到最初请求的页面,这是我不想做的。我只是想在后台执行保存的请求没有用户的通知。那么,我如何防止front_controller的调度动作自动转发或呈现原始请求的响应?

我检查了Zend框架,它说,设置returerresponse为true,响应将被响应而不是显示。但事实并非如此。我深入研究了一下前端控制器,似乎调度程序只是直接调度请求。

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

谢谢

您必须等到现有请求结束后才能执行此操作。如果我没理解错的话,这应该行得通。

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

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

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

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

查看Zend_Test_PHPUnit_ControllerTestCase::dispatch()。这听起来就是你想要做的。

最新更新