国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

請求周期

請求周期


請求生命周期

介紹

在「日常生活」中 使用任何工具時(shí),如果理解了該工具的工作原理。那么用起來就會(huì)更加得心應(yīng)手。應(yīng)用開發(fā)也是如此,當(dāng)你能真正懂得一個(gè)功能背后實(shí)現(xiàn)原理時(shí),用起來會(huì)更加順手,方便。

文檔存在目的是為了讓你更加清晰地了解 Laravel 框架是如何工作。通過框架進(jìn)行全面了解,讓一切都不再感覺很「神奇」。相信我,這有助于你更加清楚自己在做什么,對自己想做的事情更加胸有成竹。就算你不明白所有的術(shù)語,也不用因此失去信心!只要多一點(diǎn)嘗試、學(xué)著如何運(yùn)用,隨著你瀏覽文檔的其他部分,你的知識(shí)一定會(huì)因此增長。

生命周期概述

首先

Laravel 應(yīng)用的所有請求入口都是 public/index.php 文件。而所有的請求都是經(jīng)由你的 Web 服務(wù)器(Apache/Nginx)通過配置引導(dǎo)到這個(gè)文件。 index.php 文件代碼并不多,但是,這里是加載框架其它部分的起點(diǎn)。

index.php 文件加載 Composer 生成的自動(dòng)加載設(shè)置,然后從 bootstrap/app.php 腳本中檢索 Laravel 應(yīng)用程序的實(shí)例。 Laravel 本身采取的第一個(gè)動(dòng)作是創(chuàng)建一個(gè)應(yīng)用程序 / 服務(wù)容器。

HTTP / Console 內(nèi)核

接下來, 根據(jù)進(jìn)入應(yīng)用程序的請求類型來將傳入的請求發(fā)送到 HTTP 內(nèi)核或控制臺(tái)內(nèi)核。而這兩個(gè)內(nèi)核是用來作為所有請求都要通過的中心位置。 現(xiàn)在,我們先看看位于 app/Http/Kernel.php 中的 HTTP 內(nèi)核。

HTTP 內(nèi)核繼承了 Illuminate\Foundation\Http\Kernel 類,該類定義了一個(gè) bootstrappers 數(shù)組。 這個(gè)數(shù)組中的類在請求被執(zhí)行前運(yùn)行,這些 bootstrappers 配置了錯(cuò)誤處理, 日志, 檢測應(yīng)用環(huán)境,以及其它在請求被處理前需要執(zhí)行的任務(wù)。

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

HTTP 內(nèi)核的 handle 方法簽名相當(dāng)簡單:獲取一個(gè) Request ,返回一個(gè) Response??梢园言搩?nèi)核想象作一個(gè)代表整個(gè)應(yīng)用的大黑盒子,輸入 HTTP 請求,返回 HTTP 響應(yīng)。

服務(wù)提供者

內(nèi)核啟動(dòng)操作中最重要的便是你應(yīng)用的 服務(wù)提供者 了。所有應(yīng)用下的服務(wù)提供者均配置到了 config/app.php 配置文件中的 providers 數(shù)組中。 第一步,所有服務(wù)提供者的 register 方法會(huì)被調(diào)用,然后一旦所有服務(wù)提供者均注冊后, boot 方法才被調(diào)用。

服務(wù)提供者給予框架開啟多種多樣的組件,像數(shù)據(jù)庫,隊(duì)列,驗(yàn)證器,以及路由組件。只要被啟動(dòng)服務(wù)提供者就可支配框架的所有功能,所以服務(wù)提供者也是 Laravel 整個(gè)引導(dǎo)周期最重要組成部分。

請求調(diào)度

一旦啟動(dòng)且所有服務(wù)提供者被注冊,Request 會(huì)被遞送給路由。路由將會(huì)調(diào)度請求,交給綁定的路由或控制器,也當(dāng)然包括路由綁定的中間件。

聚焦服務(wù)提供者

服務(wù)提供者是 Laravel 真正意義的生命周期中的關(guān)鍵。應(yīng)用實(shí)例一旦創(chuàng)建,服務(wù)提供者就被注冊,然后請求被啟動(dòng)的應(yīng)用接管。簡單吧!

牢牢掌握服務(wù)提供者的構(gòu)建和其對 Laravel 應(yīng)用處理機(jī)制的原理是非常有價(jià)值的。當(dāng)然,你的應(yīng)用默認(rèn)的服務(wù)提供會(huì)存放在 app/Providers 下面。

默認(rèn)的, AppServiceProvider 是空白的。這個(gè)提供者是一個(gè)不錯(cuò)的位置,用于你添加應(yīng)用自身的引導(dǎo)處理和服務(wù)容器綁定。當(dāng)然,大型項(xiàng)目中,你可能希望創(chuàng)建數(shù)個(gè)粒度更精細(xì)的服務(wù)提供者。

本文章首發(fā)在 LearnKu.com 網(wǎng)站上。