有人可以为我指明创建 zend-mvc 风格的 postDispatch 插件的正确方向吗?
我尝试使用 afterDispatchLoop() 但我需要一种方法来访问当前响应。目标是对响应(呈现的布局 + View )进行某种过滤,然后使用新的过滤文本重置响应。
我也尝试过使用 afterRender() 和 beforeRender() 但没有成功,因为我从依赖注入(inject)器得到的响应是空的。
如果你知道如何实现这个,请帮忙!谢谢!
更新
我已经使用 View 事件 (afterRender) 让它工作了。此事件传递 Phalcon MVC View 的一个实例,您随后可以在其中修改整个 View 的主体,但调用 $view->getContent() + 操作,然后调用 $view->setContent()。
我习惯于像在 Zend 中那样使用 HTTP 响应对象。有没有更好的方法在 Phalcon 中实现这种响应操作?
最佳答案
如果您从依赖注入(inject)器中的服务得到空结果,您可以为服务启用 php 单例设计模式,只需添加“true”标志,如下所示:
$di->set('view', function() use($config) {
$view = new \Phalcon\Mvc\View();
$view->setViewsDir($config->application->viewsDir);
$view->registerEngines(array(
".volt" => 'volt',
));
return $view;
}, true);
$di->set('service', function(){}, SINGLETON_TRUE_OR_FALSE)
更多信息在这里:http://docs.phalconphp.com/en/latest/reference/di.html#shared-services
关于php - Phalcon PHP - 创建 "postDispatch"插件来处理响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748607/