3

有人可以为我指出创建 zend-mvc 风格的 postDispatch 插件的正确方向吗?

我尝试使用 afterDispatchLoop() 但我需要一种访问当前响应的方法。目标是对 Response (rendered layout + view) 进行某种过滤,然后使用新过滤的文本重置响应。

我也尝试使用 afterRender() 和 beforeRender() 但没有运气,因为我从依赖注入器得到的响应是空的。

如果您知道如何实现这一点,请提供帮助!谢谢!


更新

我已经使用 View 事件(afterRender)让它工作了。此事件传递 Phalcon MVC 视图的一个实例,您可以随后在其中修改整个视图的主体,但调用 $view->getContent() + 操作,然后是 $view->setContent()。

我习惯于在 Zend 中使用 HTTP 响应对象。有没有更好的方法在 Phalcon 中实现这种响应操作?

4

1 回答 1

1

如果您从依赖注入器中的服务获得空结果,您可以为服务启用 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

于 2014-02-07T12:44:05.457 回答