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

Laravel 5.8 中文文檔手冊 / 請(qǐng)求周期

請(qǐng)求周期

請(qǐng)求周期


請(qǐng)求生命周期

介紹

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

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

生命周期概述

首先

Laravel 應(yīng)用的所有請(qǐng)求入口都是 public/index.php 文件。而所有的請(qǐng)求都是經(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)用程序的請(qǐng)求類型來將傳入的請(qǐng)求發(fā)送到 HTTP 內(nèi)核或控制臺(tái)內(nèi)核。而這兩個(gè)內(nèi)核是用來作為所有請(qǐng)求都要通過的中心位置。 現(xiàn)在,我們先看看位于 app/Http/Kernel.php 中的 HTTP 內(nèi)核。

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

HTTP 內(nèi)核還定義了所有請(qǐng)求被應(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 請(qǐng)求,返回 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)周期最重要組成部分。

請(qǐng)求調(diào)度

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

聚焦服務(wù)提供者

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

牢牢掌握服務(wù)提供者的構(gòu)建和其對(duì) 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)站上。