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()方法获取原始的异常。

相关文章
|
6月前
若依框架 --- echarts 封装
若依框架 --- echarts 封装
348 0
|
1月前
|
资源调度 JavaScript PHP
Vue3+ element plus 前后分离admin项目安装教程
Vue3+ element plus 前后分离admin项目安装教程
43 0
|
4月前
|
开发框架 前端开发 JavaScript
在Bootstrap开发框架基础上增加WebApi+Vue&Element的前端
在Bootstrap开发框架基础上增加WebApi+Vue&Element的前端
|
4月前
|
测试技术 PHP 数据库
深入解析PHP框架:Symfony框架详解与应用
📚 Symfony框架深度解析:模块化设计提升开发效率,性能优越,灵活性高,支持MVC模式。探索控制器、路由、模板(如Twig)、服务容器、事件调度器等核心概念。还包括表单处理、数据库集成( Doctrine ORM)、安全组件、国际化支持及调试工具。使用Symfony CLI快速创建应用,内置PHPUnit测试支持。开始你的高质量Web开发之旅吧!
75 2
|
开发框架 JavaScript 前端开发
SpringBoot + Ant Design Pro Vue实现动态路由和菜单的前后端分离框架
Ant Design Pro Vue默认路由和菜单配置是采用中心化的方式,在 router.config.js统一配置和管理,同时也提供了动态获取路由和菜单的解决方案,并将在2.0.3版本中提供,因到目前为止,官方发布的版本为2.0.2,所以本文结合官方提供的解决方案结合SpringBoot后台权限管理进行修改,搭建一套完整的SpringBoot +Vue前后端分离框架。
1039 0
|
前端开发 JavaScript 编译器
【Svelte框架】Svelte在构建快速Web应用程序过程中对于嵌套组件和preventDefault【一个APP的实例】
【Svelte框架】Svelte在构建快速Web应用程序过程中对于嵌套组件和preventDefault【一个APP的实例】
【Svelte框架】Svelte在构建快速Web应用程序过程中对于嵌套组件和preventDefault【一个APP的实例】
|
前端开发
第十五章 webpack5项目搭建React-Cli(配置合并)
介绍将开发模式和生产模式合并为一个配置文件的步骤
133 0
|
前端开发
第十九章 webpack5项目搭建Vue-Cli(合并配置)
本章是介绍如何将vue-cli的开模式和生产模式合并的步骤
184 0
|
开发者
第十六章 webpack5项目搭建React-Cli(配置优化)
本章介绍开发者如何根据项目来优化配置文件
118 0
|
前端开发
symfony2框架配置页面
symfony2框架配置页面
135 0
symfony2框架配置页面
下一篇
无影云桌面