1. 请求进入nginx
  2. nginx将请求转发到phpfpm
  3. phpfpm主进程fork一个子进程来执行该请求
  4. cgi程序解析对应的index.php

—- thinkphp6的请求流程 —-

  1. 载入Composer, 自动加载依赖库
  2. 实例化基础类App, 在App类构造函数时
    1. 保存了应用目录的路径
    2. 并将app目录下的provider.php覆盖写入到app实例
  3. 回到index.php, 调取容器中的http类
    1. 会通过实例app的魔术方法__get获取
    2. 再通过make方法创建对应的http实例, make方法会通过反射来new实例, tp支持了反射回调, invokeCallback
    3. http的构造方法中, 通过成员变量将app类实例的引用写入进来
  4. 调取http类实例的run方法
    1. 调取http类实例的初始化方法 initialize
      1. 通过成员变量$app, 调取app类实例的初始化方法initialize
    2. 通过成员变量$app, 去调取app类实例的make方法, 创建一个\think\request类实例