我們都知道Laravel請求到回應的整個執行過程,主要可以分為四個階段:程式啟動準備階段、請求實例化階段、請求處理階段、回應傳送和程式終止階段;那麼,每一個階段裡面又有哪些內容呢?下面我們就來簡單來看一看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內容請關注laravel框架入門教程。
相關文章推薦:
##[ Laravel 5.2 文件] 架構-- 一次請求的生命週期 #以上是Laravel框架的生命週期有哪幾個階段? Laravel生命週期四個階段的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!