生命周期概要

2018-02-24 15:51 更新

首要之事

public/index.php 這個文件是對 Laravel 應(yīng)用程序所有請求的進入點。所有的請求都通過您網(wǎng)頁服務(wù)器(Apache / Ngix)的配置導(dǎo)向這個文件。 index.php 這個文件并沒有太多的代碼。更確切地說,它只是個起始點,用來加載框架其他的部分。

index.php 加載由 Composer 產(chǎn)生的自動加載器定義,并接收由 bootstrap/app.php 文件所產(chǎn)生的 Laravel 應(yīng)用程序?qū)嵗aravel 自身的第一個動作就是創(chuàng)建一個應(yīng)用程序 / 服務(wù)容器的實例。

HTTP / 終端核心

接下來,進入應(yīng)用程序的請求的會被送往 HTTP 核心或終端核心,視該請求的種類而定。這兩種核心是所有請求流向的中心位置?,F(xiàn)在開始,我們只將焦點放在 HTTP 核心,它位于 app/Http/Kernel.php。

HTTP 核心擴展了 Illuminate\Foundation\Http\Kernel 類,它定義了一個 bootstrappers 數(shù)組,在請求被執(zhí)行前會執(zhí)行。這些啟動器(bootstrappers)會進行配置錯誤處理,日志記錄,偵測應(yīng)用程序環(huán)境,以及其他在請求真正被處理之前,需要完成的工作。

HTTP 核心也定義了一份 HTTP 中間件清單,所有的請求在被應(yīng)用程序處理之前都必須經(jīng)過它們。這些中間件有負責處理 HTTP session 的讀寫,決定應(yīng)用程序是否處于維護模式,查驗跨站請求偽造(CSRF)標記,以及其他更多的功能。

HTTP 核心 handle 方法的方法簽名相當簡單:它接收一個 Request 并返回一個 Response。把核心想像成一個大的黑盒子,用來代表你整個的應(yīng)用程序。對它輸入 HTTP 請求,它將返回 HTTP 響應(yīng)。

服務(wù)提供者

最重要的核心啟動行為之一,是加載您的應(yīng)用程序的服務(wù)提供者。所有應(yīng)用程序的服務(wù)提供者,都在 config/app.php 配置文件的 providers 數(shù)組中被配置。首先,對所有的提供者調(diào)用 register 方法,一旦所有的提供者都被注冊之后,boot 方法也會被調(diào)用。

請求分派

當應(yīng)用程序啟動且所有的服務(wù)提供者都被注冊之后,Request 將被移轉(zhuǎn)給路由器進行分派。路由器會將請求分派給路由或控制器,并執(zhí)行任何特定路由的中間件。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號