thinkphp源碼詳細(xì)閱讀(二)
請求流程
- 實(shí)例化
http
关贵,注入app
和設(shè)置routePath
- 執(zhí)行
run
方法,首先初始化initialize
毫捣,初始化操作是在容器app
中執(zhí)行
- 初始化執(zhí)行的是,記錄初始化標(biāo)記帝际、開始時(shí)間、開始內(nèi)存饶辙、加載環(huán)境變量蹲诀、配置文件后綴、設(shè)置調(diào)試模式弃揽、加載配置文件脯爪、加載語言配置、加載語言包矿微、觸發(fā)
AppInit
事件痕慢、設(shè)置時(shí)區(qū)、注冊錯(cuò)誤和異常處理涌矢、注冊系統(tǒng)服務(wù)掖举、啟動(dòng)系統(tǒng)服務(wù) - 其中加載配置文件執(zhí)行的是,引入自定義函數(shù)娜庇、系統(tǒng)幫助函數(shù)塔次、配置文件方篮、注冊事件、注冊服務(wù)
- 初始化這個(gè)過程代碼還是相對較多的励负,不過閱讀起來也是相對簡單的藕溅,有點(diǎn)耐心即可
- 創(chuàng)建
request
對象,然后綁定到容器中继榆,然后執(zhí)行運(yùn)行程序 - 加載全局中間件巾表,并給中間件放入執(zhí)行隊(duì)列
- 觸發(fā)
HttpRun
事件,然后調(diào)度管道
下一期
- 管道分析
pipeline