如何在 Zend_framework 中不呈现响应的情况下发送保存的请求
Posted
技术标签:
【中文标题】如何在 Zend_framework 中不呈现响应的情况下发送保存的请求【英文标题】:How can I dispatch a saved request without rendering the response in Zend_framework 【发布时间】:2011-04-17 04:22:22 【问题描述】:我想执行保存的请求。这就是我所做的。 我将一个请求对象序列化到数据库中,然后当用户激活他们的帐户时,我需要重播这个请求。 我用这种方式重放请求:
$front = Zend_Controller_Front::getInstance();
$front->returnResponse(true);
$response = $front->dispatch($request);
但这将始终将用户带到原始请求的页面,我不想这样做。我只想在没有用户通知的情况下在后端执行保存的请求。那么如何防止 front_controller 的 dispatch action 自动转发或渲染原始请求的响应呢?
我检查了 Zend 框架,它说,将 retureResponse 设置为 true,响应将被响应而不是显示。但它不是这样工作的。深入前端控制器,看来dispatcher直接派发请求了。
那么他们有什么好的解决方案可以在后端的zend框架中执行保存的请求对象吗?
谢谢
【问题讨论】:
【参考方案1】:您必须等到现有请求结束后才能执行此操作。如果我的理解是正确的,这应该可以工作。
您决定何时运行存储的请求。
Zend_Registry::set('runStoredRequest', true);
然后在完成初始请求后(在引导程序的底部)在引导程序中添加以下内容:
if(Zend_Registry::get('runStoredRequest'))
/** RETRIEVE AND RUN STORED REQUEST **/
【讨论】:
【参考方案2】:查看Zend_Test_phpUnit_ControllerTestCase::dispatch()。这听起来就像你想要做的。
【讨论】:
以上是关于如何在 Zend_framework 中不呈现响应的情况下发送保存的请求的主要内容,如果未能解决你的问题,请参考以下文章