在phalcon里,控制器的Action的方法的返回值没啥用。
通过事件管理器,让返回值起作用。
例如
public function indexAction()
{
$this->view->disable();
return ['aa'=>1, 'status'=> 0 ];
}
上面这个代码,打开页面没有输出。
而我现在希望,能和laravel 一样,返回数组的话,能自动输出json格式。
利用phalcond的事件管理器,轻松实现此要求,代码如下:
$di->setShared('dispatcher', function()use($di) {
$dispatcher = new Dispatcher();
$dispatcher->setDefaultNamespace('Learn_phalcon\Modules\Frontend\Controllers');
$eventManager = new EventsManager();
$eventManager->attach('dispatch:afterDispatch' ,function (Event $event, $dispatcher)use($di) {
$arr = $dispatcher->getReturnedValue();// 获取action的返回
if (is_array($arr)) { // 判断是否是数组,
$response = $di->getResponse();
$response->setHeader('Content-Type', 'application/json');
$response->setContent(json_encode($arr, JSON_UNESCAPED_UNICODE));
$response->send();
}
});
$dispatcher->setEventsManager($eventManager);
return $dispatcher;
});
让phalcon再次wei大!
分享到:
相关推荐
在标题和描述中提到的"phalcon框架简易版"是一个专门为新手设计的简化版本,它包括了控制器(Controllers)、模型(Models)和视图(Views)这三个关键组件,这些都是MVC(Model-View-Controller)架构模式的基础...
通过官方API文档,我们可以了解到每个类的功能、方法、参数和返回值,这对于学习和使用Phalcon至关重要。 1. **路由(Routing)**:Phalcon的路由系统允许我们定义URL模式并将其映射到相应的控制器和操作。这使得...
4. **控制器与视图**:手册会讲解如何创建控制器处理用户请求,以及如何使用视图来渲染和展示数据。这通常涉及模板引擎的使用,如volt,以及变量传递和布局管理。 5. **模型与数据库操作**:Phalcon提供了ORM(对象...
4. 验证安装:在PHP脚本中使用`phpinfo()`函数,查看输出信息中是否包含了Phalcon的相关信息。这证明了Phalcon已经成功加载。 "LICENSE.txt"文件通常包含了软件的许可协议,对于开源项目如Phalcon,这通常会是MIT、...
作为一款全栈框架,Phalcon包含了路由、视图、模型、控制器、数据库适配器、缓存等多个核心组件,为开发者提供了丰富的功能和高效的开发工具。 中文参考文档"phalcon_zh_cn_docs"涵盖了Phalcon框架的各个方面,是...
在使用这个模板时,开发者可以按照自己的需求创建新的模块,每个模块都有自己的`controllers`目录,包含具体处理业务逻辑的控制器。同时,可以继承`ControllerBase`,利用已有的日志和JSON响应功能,减少重复代码。...
3. 创建Swoole服务器:使用Swoole创建一个服务器实例,并配置Phalcon的前端控制器(如`public/index.php`)作为处理器。 4. 调整Phalcon配置:配置Phalcon以适应Swoole的运行环境,例如关闭session的文件存储,因为...
4. **路由(Routing)**:Phalcon的路由系统允许开发者定义URL模式和处理这些URL的控制器动作,文档中详细介绍了如何配置和使用路由规则。 5. **依赖注入(Dependency Injection, DI)**:Phalcon的DI容器支持服务...
修复Phalcon\Debug\Dump::output的回归(#13308)以正确使用详细模式#13315;修正Phalcon\Mvc\Model\Query\Builder::having和Phalcon\Mvc\Model\Query\Builder::在哪里正确合并绑定类型#11487;修正Phalcon\Mvc\...
作为一款全栈框架,Phalcon提供了一系列组件,涵盖了从路由、数据库交互到视图渲染等多个方面,使得开发者能够以更简洁、高效的方式编写代码。 一、Phalcon的特性与优势 1. C语言扩展:Phalcon是用C语言编写的,并...
1. MVC架构:Phalcon遵循模型-视图-控制器(MVC)模式,这使得开发人员能够清晰地分离业务逻辑、数据处理和用户界面。控制器处理HTTP请求,模型处理数据操作,而视图负责展示结果。 2. ORM(对象关系映射):...
开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。 Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象。Phalcon 不只是为了卓越的性能, 我们的目标是让它...
Phalcon DevTools提供了一系列辅助工具,包括模型生成器、控制器生成器、Scaffold(脚手架)以及代码提示功能,极大地提升了开发者的生产力。通过这些工具,你可以快速创建项目结构,自动生成代码,使得开发过程更加...
笔记中可能涵盖了Phalcon的安装配置、控制器和视图的使用、模型的创建、数据库查询、缓存管理、安全实践等方面,这些都是在实际开发中必不可少的知识点。 在Phalcon中,控制器负责处理HTTP请求,模型则用于业务逻辑...
PhalconPHP 是一个使用 C 扩展开发的 PHP Web 框架,提供高性能和低资源占用。 Phalcon 是一个开源的、全堆栈的 PHP 5 框架,使用 C 扩展编写,专门为高性能优化。无需学习和使用 C 语言,所有函数都以 PHP 类...
Invo是一个开源项目,它展示了Phalcon的主要功能,包括路由、模型、视图、控制器以及数据库交互。通过这个项目,我们可以深入学习Phalcon框架的以下关键知识点: 1. **路由**:Phalcon的路由系统允许开发者定义URL...
手册涵盖了框架的各个组件,如路由、控制器、视图、模型、数据库适配器等。它深入浅出地解释了Phalcon的API,让开发者能够快速理解和掌握如何在PHP环境中使用这些功能。特别的是,手册提供了中文版本,对于中文使用...