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

相关文章
|
存储 网络协议 前端开发
Netty服务端和客户端开发实例—官方原版
Netty服务端和客户端开发实例—官方原版
519 0
|
机器学习/深度学习 人工智能 Apache
人工智能平台PAI操作报错合集之alink任务可以在本地运行,上传到flink web运行就报错,如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
12月前
|
弹性计算 应用服务中间件 网络安全
ECS服务器使用:SSL证书安装、配置和问题定位指南
本文简要介绍了SSL证书的生成与部署方法,包括使用OpenSSL生成自签名证书和从CA获取证书的步骤,以及在Apache和Nginx服务器上的配置方法。此外,还提供了测试证书是否生效的方法和常见问题的解决策略,帮助确保证书正确安装并解决调试过程中可能遇到的问题。
1032 0
|
C++ Python Windows
python在windows下pip的问题总结
Microsoft Visual C++ 14.0 is required.
108 0
|
JavaScript 前端开发 索引
JavaScript 手写代码 第五期(重写数组方法一)-可以改变原数组的方法
JavaScript 手写代码 第五期(重写数组方法一)-可以改变原数组的方法
106 0
阿里云联合8家芯片商推“全平台通信模组”,加速物联网生态建设
因为此次合作,其中部分合作伙伴已经收获了一个月新客户同比线下增长500%的惊人成果。
794 1
|
4天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!