laravel架構(gòu)--生命周期

1.第一件事
laravel中的所有請(qǐng)求入口都是public/index.php文件,index.php會(huì)載入composer生成的自動(dòng)加載設(shè)置,從bootstrap/app.php腳本獲取laravel應(yīng)用實(shí)例,之后laravel的第一個(gè)動(dòng)作就是創(chuàng)建服務(wù)容器實(shí)例

2.HTTP/Console內(nèi)核

請(qǐng)求->app/Http/kernel.php中,該類定義了bootstrappers數(shù)組(數(shù)組中的類在請(qǐng)求被執(zhí)行之前要先運(yùn)行),該數(shù)組中是一些關(guān)于
錯(cuò)誤處理、日志、監(jiān)測(cè)應(yīng)用環(huán)境以及其他在請(qǐng)求被處理前需要被執(zhí)行的任務(wù)類

HTTP內(nèi)核定義了在請(qǐng)求被處理前還需要經(jīng)過:HTTP中間件,這些中間件處理HTTP會(huì)話的讀寫、判斷應(yīng)用是否處于維護(hù)模式、驗(yàn)證CSRF令牌等等

HTTP內(nèi)核的標(biāo)志方法:handle。獲取Request,處理數(shù)據(jù),返回Response.

2.2.1 服務(wù)器提供者
內(nèi)核啟動(dòng)最重要的動(dòng)作之一:為應(yīng)用載入服務(wù)提供者。
1.所有的服務(wù)提供者都被配置在config/app.php類的providers數(shù)組中。
2.所有提供者的register方法被調(diào)用-->完成注冊(cè)-->boot()調(diào)用
3.服務(wù)提供者負(fù)責(zé)啟動(dòng)框架的所有各種的組件,如:數(shù)據(jù)庫(kù)、隊(duì)列、驗(yàn)證器、路由組件等

2.2.2 分發(fā)請(qǐng)求
應(yīng)用被啟動(dòng),服務(wù)提供者被注冊(cè),Request--->交給路由器--->分發(fā)到路由或控制器,同事運(yùn)行所有路由指定的中間件

3.聚焦服務(wù)提供者

應(yīng)用實(shí)例被創(chuàng)建--->服務(wù)提供者被注冊(cè)--->請(qǐng)求交給啟動(dòng)后的應(yīng)用進(jìn)行處理
應(yīng)用默認(rèn)的服務(wù)提供者存放在app/Providers目錄下
AppServiceProvider是空的(默認(rèn)下),這里是添加自定義啟動(dòng)和服務(wù)容器綁定的最佳位置

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,712評(píng)論 0 121
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評(píng)論 25 709
  • “那孽脈你要隱藏到什么時(shí)候?!” 幽暗空間之中,那道仿佛從黑暗中凸顯出來(lái)的蒼老面龐,憤怒的盯著那道白裙身影,怒聲轟...
    混沌天書閱讀 683評(píng)論 0 0
  • 對(duì)人的的管理(引導(dǎo))talkmeetingemailchatassignby third party 對(duì)文件的管理...
    Gouwal閱讀 116評(píng)論 0 0

友情鏈接更多精彩內(nèi)容