thinkphp源码详细阅读(二)
请求流程
- 实例化
http
,注入app
和设置routePath
- 执行
run
方法,首先初始化initialize
,初始化操作是在容器app
中执行 - 初始化执行的是,记录初始化标记、开始时间、开始内存、加载环境变量、配置文件后缀、设置调试模式、加载配置文件、加载语言配置、加载语言包、触发
AppInit
事件、设置时区、注册错误和异常处理、注册系统服务、启动系统服务 - 其中加载配置文件执行的是,引入自定义函数、系统帮助函数、配置文件、注册事件、注册服务
- 初始化这个过程代码还是相对较多的,不过阅读起来也是相对简单的,有点耐心即可
- 创建
request
对象,然后绑定到容器中,然后执行运行程序 - 加载全局中间件,并给中间件放入执行队列
- 触发
HttpRun
事件,然后调度管道
下一期
- 管道分析
pipeline