tp laravel 生命周期
thinkphp6
1、index.php单入口文件中,载入composer的autoload文件
2、实例化think\App,获取项目基础路径
3.加载全局的服务提供:provider文件
4、设置容器示例以及应用对象实例,保证当前容器对象唯一
5、从容器获取http 应用类think\http;($http = (new App())->http;)
6、执行http应用 run方法启动一个http应用 ($response = $http->run();)
7、获取当前请求对象实例保存到容器(app\Request继承think\Request)
8、执行think\App类的初始化方法initialize
9、加载.env和全局初始化文件
10、加载全局公共文件、系统助手函数、全局配置文件、全局事件定义和全局服务定义
11、判断应用模式(调试或者部署模式)
12、监听AppInit事件
13.注册异常处理
14.服务注册
15.启动注册的服务
16.加载全局中间件定义
17.监听HttpRun事件
18.执行全局中间件
19.执行路由调度(Route类dispatch方法)
20.如果开启路由则检查路由缓存
21.加载路由定义
22.监听RouteLoaded事件
23.如果开启注解路由则检测注解路由
24.路由检测(中间流程很复杂 略)
25.路由调度对象think\route\Dispatch初始化
26.设置当前请求的控制器和操作名
27.注册路由中间件
28.绑定数据模型
29.设置路由额外参数
30.执行数据自动验证
31.执行路由调度子类的exec方法返回响应think\Response对象
32.获取当前请求的控制器对象实例
33.利用反射机制注册控制器中间件
34.执行控制器方法以及前后置中间件
35.执行当前响应对象的send方法输出($response->send();)
36.执行HTTP应用对象的end方法善后($http->end($response);)
37.监听HttpEnd事件
38.执行中间件的end回调
39.写入当前请求的日志信息
简单方式为:创建应用App对象,在这里获取一些初始化目录;创建http应用,接着加载环境变量、助手函数文件、事件、服务配置加载;服务注册,在全局初始化完成之后执行加载所需要的服务类;创建,注册触发事件监听;定义加载执行中间件;路由解析;控制器;输出响应。
laravel 7 生命周期
原文地址:https://www.cnblogs.com/yudubujue/p/15233529.html
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 02 . Kubeadm部署Kubernetes及简单应用
- java编程思想第四版第六章习题
- Docker部署Python项目
- 03 . 二进制部署kubernetes1.18.4
- 01 . 美团全链路监控CAT简介及部署
- 02 . Ansible高级用法(运维开发篇)
- java编程思想第四版第七章总结
- OpenVPN原理及部署使用
- 04 . Jenkins部署Java项目
- java编程思想第四版第七章习题
- 03 . Jenkins构建之代码扫描
- mysql提示Packet for query is too large (1142 > 1024)解决方案
- Kubernetes 1.19.0——deployment(1)
- 02 . Jeknins简介部署及自动化部署PHP代码
- java编程思想第四版第八章习题