這篇“Laravel請(qǐng)求到響應(yīng)的整個(gè)執(zhí)行過(guò)程”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“Laravel請(qǐng)求到響應(yīng)的整個(gè)執(zhí)行過(guò)程”,給大家總結(jié)了以下內(nèi)容,具有一定借鑒價(jià)值,內(nèi)容詳細(xì)步驟清晰,細(xì)節(jié)處理妥當(dāng),希望大家通過(guò)這篇文章有所收獲,下面讓我們一起來(lái)看看具體內(nèi)容吧。

Laravel 是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開(kāi)發(fā)框架。它可以讓你從面條一樣雜亂的代碼中解脫出來(lái);它可以幫你構(gòu)建一個(gè)完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡(jiǎn)潔、富于表達(dá)力。
Laravel請(qǐng)求到響應(yīng)的整個(gè)執(zhí)行過(guò)程,主要可以歸納為四個(gè)階段,即程序啟動(dòng)準(zhǔn)備階段、請(qǐng)求實(shí)例化階段、請(qǐng)求處理階段、響應(yīng)發(fā)送和程序終止階段。
程序啟動(dòng)準(zhǔn)備階段
服務(wù)容器實(shí)例化
服務(wù)容器的實(shí)例化和基本注冊(cè),包括了服務(wù)容器本身注冊(cè)、基礎(chǔ)服務(wù)提供者注冊(cè)、核心類別名注冊(cè)和應(yīng)用的基本路徑注冊(cè)。注冊(cè)的服務(wù)只是具體的類名,是通過(guò)反射機(jī)制來(lái)實(shí)例化對(duì)象,并且通過(guò)反射機(jī)制自動(dòng)解決構(gòu)造函數(shù)中的依賴關(guān)系。
核心類實(shí)例化
核心類實(shí)例化是服務(wù)容器實(shí)例化后,通過(guò)核心類別名注冊(cè)服務(wù)來(lái)得到的服務(wù)容器自動(dòng)實(shí)例化對(duì)象。如:index.php中的Kernel類實(shí)例化:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
請(qǐng)求實(shí)例化階段
請(qǐng)求是客戶端發(fā)送的一個(gè)請(qǐng)求報(bào)文,包括請(qǐng)求行、請(qǐng)求首部和請(qǐng)求實(shí)體。Laravel將其分類并保存在Illuminate\Http\Request類的實(shí)例對(duì)象中,也就是說(shuō)將請(qǐng)求轉(zhuǎn)化為一個(gè)實(shí)例對(duì)象。請(qǐng)求實(shí)例的創(chuàng)建是通過(guò)Illuminate\Http\Request類的capture()靜態(tài)方法完成的,即:
$request = Illuminate\Http\Request::capture();
但在capture()方法中,可以看出Laravel的請(qǐng)求實(shí)例是在Symfony請(qǐng)求實(shí)例的基礎(chǔ)上創(chuàng)建的。而Symfony是通過(guò)PHP的全局?jǐn)?shù)組$_GET、$_POST、$_COOKIE、$_FILE和$_SERVER作為參數(shù)來(lái)實(shí)例化請(qǐng)求的。
請(qǐng)求處理階段
請(qǐng)求處理階段首先是準(zhǔn)備請(qǐng)求處理的環(huán)境,包括環(huán)境加載、服務(wù)提供者注冊(cè)等環(huán)節(jié),然后將請(qǐng)求實(shí)例通過(guò)中間件處理及通過(guò)路由和控制器的分發(fā)控制,使得不同的請(qǐng)求通過(guò)相應(yīng)的處理程序進(jìn)行處理并生成響應(yīng)的過(guò)程。
響應(yīng)發(fā)送和程序終止階段
響應(yīng)發(fā)送
Laravel的響應(yīng)處理類是Illuminate\Http\Response類,該類的底層也是在Symfony的Response類。響應(yīng)的發(fā)送包括兩部分內(nèi)容:響應(yīng)頭信息的發(fā)送和響應(yīng)主體內(nèi)容的發(fā)送。
程序終止
Laravel中,終止程序主要是完成終止中間件的調(diào)用。
感謝你的閱讀,希望你對(duì)“Laravel請(qǐng)求到響應(yīng)的整個(gè)執(zhí)行過(guò)程”這一關(guān)鍵問(wèn)題有了一定的理解,具體使用情況還需要大家自己動(dòng)手實(shí)驗(yàn)使用過(guò)才能領(lǐng)會(huì),快去試試吧,如果想閱讀更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站欄目:?Laravel請(qǐng)求到響應(yīng)的整個(gè)執(zhí)行過(guò)程-創(chuàng)新互聯(lián)
本文路徑:http://www.yijiale78.com/article20/dodijo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、微信小程序、云服務(wù)器、關(guān)鍵詞優(yōu)化、手機(jī)網(wǎng)站建設(shè)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容