Skip to content

执行流程

进程启动流程

执行 php start.php start 后执行流程如下:

  1. 载入 config / 下的配置
  2. 设置 Worker 的相关配置如 pid_file stdout_file log_file max_package_size
  3. 创建 webman 进程,并监听端口(默认 8787)
  4. 根据配置创建自定义进程
  5. webman 进程和自定义进程启动后执行以下逻辑 (以下都是执行在 onWorkerStart 里): ① 加载 config/autoload.php 里设置的文件,如 app/functions.php ② 加载 config/middleware.php (包括 config/plugin/*/*/middleware.php ) 里设置的中间件 ③ 执行 config/bootstrap.php (包括 config/plugin/*/*/bootstrap.php ) 里设置类的 start 方法,用于初始化一些模块,比如 Laravel 数据库初始化连接 ④ 载入 config/route.php (包括 config/plugin/*/*/route.php ) 里定义的路由

处理请求流程

  1. 判断请求 url 是否对应 public 下的静态文件,是的话返回文件 (结束请求),不是的话进入 2
  2. 根据 url 判断是否命中某个路由,没命中进入 3、命中进入 4
  3. 是否关闭了默认路由,是的话返回 404 (结束请求),不是的话进入 4
  4. 找到请求对应控制器的中间件,按顺序执行中间件前置操作 (洋葱模型请求阶段),执行控制器业务逻辑,执行中间件后置操作 (洋葱模型响应阶段),请求结束。(参考中间件洋葱模型)

基于 MIT 许可发布