首頁  >  文章  >  php框架  >  Laravel請求到回應的生命週期

Laravel請求到回應的生命週期

藏色散人
藏色散人轉載
2019-11-05 13:51:362217瀏覽

Laravel請求到回應的整個執行過程,主要可以歸納為四個階段,即程式啟動準備階段、請求實例化階段、請求處理階段、回應傳送和程式終止階段。

程式啟動準備階段

服務容器實例化

服務容器的實例化和基本註冊,包含了服務容器本身註冊、基礎服務提供者註冊、核心類別名稱註冊和應用的基本路徑註冊。註冊的服務只是具體的類別名,是透過反射機制來實例化對象,並且透過反射機制自動解決建構函數中的依賴關係。

核心類別實例化

核心類別實例化是服務容器實例化後,透過核心類別名稱註冊服務來得到的服務容器自動實例化物件。如:index.php中的Kernel類別實例化:

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

請求實例化階段

請求是客戶端發送的一個請求封包,包含請求行、請求首部和請求實體。 Laravel將其分類並保存在Illuminate\Http\Request類別的實例物件中,也就是說將請求轉換為實例物件。請求實例的建立是透過Illuminate\Http\Request類別的capture()靜態方法完成的,即:

$request = Illuminate\Http\Request::capture();

但在capture()方法中,可以看出Laravel的請求實例是在Symfony請求實例的基礎上創建的。而Symfony是透過PHP的全域數組$_GET、$_POST、$_COOKIE、$_FILE和$_SERVER作為參數來實例化請求的。

請求處理階段

請求處理階段首先是準備請求處理的環境,包括環境載入、服務提供者註冊等環節,然後將請求實例通過中介軟體處理及透過路由和控制器的分發控制,使得不同的請求透過對應的處理程序進行處理並產生回應的過程。

回應發送和程式終止階段

回應發送

Laravel的回應處理類別是Illuminate\Http\Response類,該類別的底層也是在Symfony的Response類別。回應的發送包括兩部分內容:回應頭訊息的發送和回應主體內容的發送。

程式終止

Laravel中,終止程式主要是完成終止中間件的呼叫。

以上是Laravel請求到回應的生命週期的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除
上一篇:laravel yii區別下一篇:laravel yii區別