執行流程
進程啟動流程
執行 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
- 找到請求對應控制器的中間件,按順序執行中間件前置操作(洋蔥模型請求階段),執行控制器業務邏輯,執行中間件後置操作(洋蔥模型響應階段),請求結束。(參考中間件洋蔥模型)