php - Phalcon PHP - 创建 "postDispatch"插件来处理响应

标签 php phalcon

有人可以为我指明创建 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/

相关文章:

model - Phalcon 模型具有附加条件的多对多关系

php - 有可能在变量中获取 Phalcon\Mvc\View 渲染输出吗?

forms - Phalcon 使用 Phalcon\Tag 或 Phalcon\Forms 创建表单

php - 如何使用mysql中的属性获取所有类别及其产品总和

macos - 在 macOS 上的 MAMP 或 XAMPP 上安装 phalcon 时出现错误

php - 自定义 mysqli 准备函数

php - 如何从 1 中获取数据库中未使用的数字

php - Phalcon 数据库迁移恢复/回滚

php - 使用 jQuery 效果更改 div 的内容?

php - Laravel 5 - SQLSTATE [22P02] - postgres 的无效文本表示