执行流程
进程启动流程
执行 php start.php start 后执行流程如下:
- 载入 config / 下的配置
- 设置 Worker 的相关配置如
pid_file
stdout_file
log_file
max_package_size
等 - 创建 webman 进程,并监听端口(默认 8787)
- 根据配置创建自定义进程
- 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
) 里定义的路由
处理请求流程
- 判断请求 url 是否对应 public 下的静态文件,是的话返回文件 (结束请求),不是的话进入 2
- 根据 url 判断是否命中某个路由,没命中进入 3、命中进入 4
- 是否关闭了默认路由,是的话返回 404 (结束请求),不是的话进入 4
- 找到请求对应控制器的中间件,按顺序执行中间件前置操作 (洋葱模型请求阶段),执行控制器业务逻辑,执行中间件后置操作 (洋葱模型响应阶段),请求结束。(参考中间件洋葱模型)