webman 啟動流程順序以及源碼的執(zhí)行簡述是怎么個情況?
1、載入config/下的配置
2、設(shè)置好Worker的相關(guān)配置如 pid_file stdout_file log_file max_package_size 等
3、創(chuàng)建webman進(jìn)程,并監(jiān)聽端口默認(rèn)8787
4、創(chuàng)建自定義進(jìn)程
5、webman進(jìn)程和自定義進(jìn)程啟動后執(zhí)行以下邏輯(以下都是執(zhí)行在onWorkerStart里):
① 載入 config/autoload.php 里設(shè)置的文件,默認(rèn)是 app/functions.php
② 載入 config/middleware.php (包括config/plugin/*/*/middleware.php)里設(shè)置的中間件
③ 執(zhí)行 config/bootstrap.php (包括config/plugin/*/*/bootstrap.php)里設(shè)置類的start方法,用于初始化一些模塊,比如Laravel數(shù)據(jù)庫初始化連接
④ 載入 config/roue.php (包括config/plugin/*/*/route.php)里定義的路由
1、判斷請求url是否對應(yīng)public下的靜態(tài)文件,是的話返回文件(結(jié)束請求),不是的話進(jìn)入2
2、根據(jù)url判斷是否命中某個路由,沒命中進(jìn)入3、命中進(jìn)入4
3、是否關(guān)閉了默認(rèn)路由,是的話返回404(結(jié)束請求),不是的話進(jìn)入4
4、找到請求對應(yīng)的中間件,執(zhí)行前置中間件,執(zhí)行業(yè)務(wù)邏輯,執(zhí)行后置中間件,請求結(jié)束。