Lararel 框架執行流程詳解(1) 入口檔案

taowendi發表於2018-08-23

開個篇,記錄一下自己學習Laravel原始碼的整個流程,笨鳥先飛,歡迎高人指點!不勝感激!
1.入口頁,public/index.php;引入了bootstrap目錄下的app.php,透過make方法例項出一個kernel物件,Kernel類是在Illuminate\Contracts\Http\Kernel ,列印出 Kernel物件,發現有很多protected的屬性,簡單羅列一下:

* middleware
* middlewareGroups
* routeMiddleware
* app
* router
* bootstrappers
* middlewarePriority

重點看app屬性,app屬性實際上是一個Illuminate\Foundation\Application的例項,裡面又包含很多屬性值,主要的屬性有:

* loadedProviders
* bindings
* instances
* aliases

接著呼叫了kernel類的handle方法,傳入一個request請求,request請求繼承了SymfonyRequest,並呼叫了一個capture方法,並將返回的值返回給response變數。整個流程基本到此為止。
,難道就這麼簡單,當然不是,請求進來之後,kernel類做了一系列的驗證,分發,處理,包括表單驗證,中介軟體,日誌記錄,呼叫控制器,查詢資料等等.... 如果能把這中間的整個流程全部搞清楚,並理解為什麼這麼做,那麼你就可以算個咖了,起碼是個中咖!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章