- 请求进入nginx
- nginx将请求转发到phpfpm
- phpfpm主进程fork一个子进程来执行该请求
- cgi程序解析对应的index.php
—- thinkphp6的请求流程 —-
- 载入Composer, 自动加载依赖库
- 实例化基础类App, 在App类构造函数时
- 保存了应用目录的路径
- 并将app目录下的provider.php覆盖写入到app实例
- 回到index.php, 调取容器中的http类
- 会通过实例app的魔术方法__get获取
- 再通过make方法创建对应的http实例, make方法会通过反射来new实例, tp支持了反射回调, invokeCallback
- http的构造方法中, 通过成员变量将app类实例的引用写入进来
- 调取http类实例的run方法
- 调取http类实例的初始化方法 initialize
- 通过成员变量$app, 调取app类实例的初始化方法initialize
- …
- …
- …
- …
- …
- …
- 通过成员变量$app, 调取app类实例的初始化方法initialize
- 通过成员变量$app, 去调取app类实例的make方法, 创建一个\think\request类实例
- 调取http类实例的初始化方法 initialize