Symfony学习--HttpKernel组件

简介:

http://symfony.com/doc/2.1/components/http_kernel/introduction.html

HttpKernel这个类提供的功能说白了就是将Request转换成Response。它使用一个流程的工作流似的方式。

整个流程图大致如下:

Image

HttpKernel最核心的是handle(); 它的工作就是将上图的Request转换成Response。

handle()是由事件驱动的,你可以建立一系列的事件监听

典型的代码如下:

Image(1)

步骤:

1 处理request

一个request可以有多个listener,listener可能直接中断,并且直接返回Response。

2 解析controller

这里有个ControllerResolver类来对controller进行解析,它有两个接口:

getController

getArguments

如果你要自定义这个解析类,你就需要自己实现这两个接口。

3 处理controller

初始化,并且在实际执行前改变对应的控制器

4 获取controller参数

通过getArguments()这个方法来获取controller的参数

5 实际调用controller

这个阶段会实际调用controller了,并得到返回的数据

6 view

这个阶段就是mvc的view层。将controller中返回的数据加上view层

7 kernel.response 事件

在数据返回前改变对应的Response事件。

8 kernel.terminate事件

在数据返回给用户前处理一些较重的事件。

异常处理:


是触发了kernel.exception事件

每个异常都返回了一个GetResponseForExceptionEvent事件,你可以使用getException()方法获取原始的异常。

相关文章
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
163 2
|
4月前
|
Web App开发 前端开发 测试技术
react18基础教程系列--安装环境及packagejson文件分析
react18基础教程系列--安装环境及packagejson文件分析
|
前端开发 JavaScript Java
如何对使用React和EMF parsley设计的Web UI应用程序进行测试自动化
Web UI应用程序是指通过Web浏览器访问的应用程序,它们通常具有复杂的用户界面和交互逻辑。为了确保Web UI应用程序的功能、性能和用户体验,测试自动化是一种有效的方法,它可以在不需要人工干预的情况下,快速地执行重复的测试任务,并提供可靠的测试结果。本文将介绍如何对使用React和EMF parsley设计的Web UI应用程序进行测试自动化,以及使用HtmlUnitDriver和java代码实现的示例。
134 0
如何对使用React和EMF parsley设计的Web UI应用程序进行测试自动化
|
前端开发 JavaScript 开发者
前端封装库/工具库的UI框架之Bootstrap
随着互联网时代的到来,对于Web应用的UI设计和开发变得越来越重要。而为了更高效地进行UI开发,前端封装库/工具库的出现成为了一个非常好的解决方案。其中一个颇受欢迎的UI框架就是Bootstrap。
190 0
|
前端开发 JavaScript
前端框架:第二章:Layui(类UI ) 框架:关于2.2.5版本没有rate模块的解决方案
前端框架:第二章:Layui(类UI ) 框架:关于2.2.5版本没有rate模块的解决方案
230 0
前端框架:第二章:Layui(类UI ) 框架:关于2.2.5版本没有rate模块的解决方案
|
前端开发 JavaScript 编译器
【Svelte框架】Svelte在构建快速Web应用程序过程中对于嵌套组件和preventDefault【一个APP的实例】
【Svelte框架】Svelte在构建快速Web应用程序过程中对于嵌套组件和preventDefault【一个APP的实例】
【Svelte框架】Svelte在构建快速Web应用程序过程中对于嵌套组件和preventDefault【一个APP的实例】
|
前端开发 JavaScript
第十三章 webpack5项目搭建React-Cli(开发模式)
详细介绍搭建React-cli开发模式配置的过程
|
开发者
第十六章 webpack5项目搭建React-Cli(配置优化)
本章介绍开发者如何根据项目来优化配置文件
127 0
|
前端开发
第十五章 webpack5项目搭建React-Cli(配置合并)
介绍将开发模式和生产模式合并为一个配置文件的步骤
139 0
|
前端开发
第十四章 webpack5项目搭建React-Cli(生产模式)
详细介绍配置react-cli生产模式的配置步骤
138 0