亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

跟我學Laravel之請求(Request)的生命周期

2024-05-04 23:26:05
字體:
來源:轉載
供稿:網友
這篇文檔包含了關于請求生命周期的高層次概述,以及啟動文件和應用程序事件的相關內容。是篇非常不錯的文章,有需要的朋友可以參考下
 
 

概述

在現實世界中使用工具時,如果理解了工具的工作原理,使用起來就會更加有底氣。應用開發也是如此。當你理解了開發工具是如何工作的,使用起來就會更加自如。這篇文檔的目標就是提供一個高層次的概述,使你對于Laravel框架的運行方式有一個較好的把握。在更好地了解了整個框架之后,框架的組件和功能就不再顯得那么神秘,開發起應用來也更加得心應手。這篇文檔包含了關于請求生命周期的高層次概述,以及啟動文件和應用程序事件的相關內容。

如果你不能立即理解所有的術語,別灰心,可以先有一個大致的把握,在閱讀文檔其他章節的過程中繼續積累和消化知識。

請求的生命周期

發送給應用程序的所有請求都經由 public/index.php 腳本處理。如果使用的是 Apache 服務器,Laravel中包含的 .htaccess 文件將對所有請求進行處理并傳遞給 index.php。這是Laravel從接受客戶端請求到返回響應給客戶端的整個過程的開始。若能對于Laravel的引導過程(bootstrap process)有一個大致的認識,將有助于理解框架,我們不妨先討論這個。

到目前為止,學習Laravel引導過程所需掌握的最重要的概念就是 服務提供器。打開 app/config/app.php 配置文件,找到 providers 數組,你會發現一個服務提供器的列表。這些提供器充當了Laravel的主要引導機制。在我們深入服務提供器之前,先回到 index.php的討論。當一個請求進入 index.php 文件,bootstrap/start.php 文件會被加載。這個文件會創建一個 Laravel Application 對象,該對象同時作為框架的 IoC 容器。

Application 對象創建完成后,框架會設置一些路徑信息并運行 環境檢測 。然后會執行位于Laravel源碼內部的引導腳本,并根據你的配置文件設置時區、錯誤報告等其他信息。除了配置這些瑣碎的配置選項以外,該腳本還會做一件非常重要的事情:注冊所有為應用程序配置的服務提供器。

簡單的服務提供器只包含一個方法:register。當應用程序對象通過自身的 register 方法注冊某個服務提供器時,會調用該服務提供器的 register 方法。服務提供器通過這個方法向 IoC 容器 注冊一些東西。從本質上講,每個服務提供器都是將一個或多個 閉包 綁定到容器中,你可以通過這些閉包訪問綁定到應用程序的服務。例如,QueueServiceProvider 注冊了多個閉包以便使用與 隊列 相關的多個類。當然,服務提供器并不局限于向IoC容器注冊內容,而是可以用于任何引導性質的任務。服務提供器可以注冊事件監聽器、視圖合成器、Artisan命令等等。

在注冊完所有服務提供器后,app/start 下的文件會被加載。最后,app/routes.php 文件會被加載。一旦 routes.php 文件被加載,Request 對象就被發送給應用程序對象,繼而被派發到某個路由上。

我們總結一下:

請求進入 public/index.php 文件。
bootstrap/start.php 文件創建應用程序對象并檢測環境。
內部的 framework/start.php 文件配置相關設置并加載服務提供器。
加載應用程序 app/start 目錄下的文件。
加載應用程序的 app/routes.php 文件。
將 Request 對象發送給應用程序對象,應用程序對象返回一個 Response 對象。
將 Response 對象發回客戶端。
你應該已經掌握了 Laravel 應用程序是如何處理發來的請求的。下面我們來看一下啟動文件。

啟動文件

應用程序的啟動文件被存放在app/start目錄中。默認情況下,該目錄下包含三個文件:global.php、local.php 和 artisan.php文件。需要獲取更多關于artisan.php的信息,可以參考文檔Artisan 命令行。

global.php啟動文件默認包含一些基本項目,例如日志的注冊以及載入app/filters.php 文件。然而,你可以在該文件里做任何你想做的事情。無論在什么環境下,它都將會被自動包含進_每一個_request中。而local.php 文件僅在local環境下被執行。獲取更多關于環境的信息,請查看文檔配置。

當然,如果除了local環境你還有其他環境的話,你也可以為針對這些環境創建啟動文件。這些文件將在應用程序運行在該環境中時被自動包含。假設你在 bootstrap/start.php 文件中配置了一個 development 環境,你可以創建一個 app/start/development.php 文件,在那個環境下任何進入應用程序的請求都會包含該文件。

啟動文件里存放什么

啟動文件主要用來存放任何“引導”性質的代碼。例如,你可以在啟動文件中注冊視圖合成器,配置日志信息,或是進行一些PHP設置等。具體做什么取決于你。當然了,把所有引導代碼都丟到啟動文件里會使啟動文件變得雜亂。對于大型應用而言,或是啟動文件顯得太雜亂了,請考慮將某些引導代碼移至 服務提供器 中。

應用程序事件

你還可以通過注冊 before、after、finish 和 shutdown應用程序事件以便在處理request之前或后做一些操作:

注冊應用程序事件

 

復制代碼代碼如下:

App::before(function($request)
{
    //
});

 

App::after(function($request, $response)
{
    //
});

 

這些事件的監聽器會在每個到達應用程序的請求處理之前(before)或之后(after)運行??梢岳眠@些事件來設置全局過濾器(filter),或是對于發回客戶端的響應(response)統一進行修改。你可以在某個啟動文件中或者 服務提供器 中注冊這些事件。

當來自應用程序的響應發送至客戶端后會觸發 finish 事件。這個事件適合處理應用程序所需的最后的收尾工作。當所有 finish 事件的監聽器都執行完畢后會立即觸發 shutdown 事件,如果想在腳本結束前再做一些事情,這是最后的機會。不過在大多數情況下,你都不需要用到這些事件。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美巨乳美女视频| 欧美电影免费观看高清完整| 亚洲人在线观看| 国产成人精品久久亚洲高清不卡| 2019中文字幕在线免费观看| 成人精品一区二区三区电影免费| 久久精品国产电影| 精品国产91久久久久久老师| 亚洲精品乱码久久久久久金桔影视| 欧美一区二区色| 国产精品一区二区三区成人| 国产欧美亚洲精品| 色综合久综合久久综合久鬼88| 97婷婷涩涩精品一区| 欧美精品在线观看91| 中文字幕av一区中文字幕天堂| 有码中文亚洲精品| 中文字幕亚洲情99在线| 亚洲人成电影网站色xx| 成人自拍性视频| 国产精品久久久久久久久粉嫩av| 97精品视频在线播放| 91九色国产在线| 精品久久久国产| 91成人天堂久久成人| 一个人www欧美| 欧美午夜精品久久久久久人妖| 日韩精品日韩在线观看| 亚洲午夜性刺激影院| 欧洲一区二区视频| 欧美第一黄网免费网站| 91性高湖久久久久久久久_久久99| 国产伦精品一区二区三区精品视频| 国产精品国产福利国产秒拍| 欧美性资源免费| 成人av资源在线播放| 亚洲国产精品一区二区三区| 国产精品久久久久久五月尺| 久久久久免费视频| 久久精品小视频| 日韩欧美国产激情| 国产一区欧美二区三区| 国产精品444| 欧美激情成人在线视频| 亚洲第一精品久久忘忧草社区| 欧美尺度大的性做爰视频| 91久久在线视频| 国产91精品高潮白浆喷水| 精品日本高清在线播放| 亚洲a中文字幕| 国内偷自视频区视频综合| 国产欧美日韩精品在线观看| 91av中文字幕| 北条麻妃一区二区三区中文字幕| 国语自产精品视频在线看| 亚洲在线免费看| 美日韩精品视频免费看| 亚洲综合日韩在线| 亚洲精品美女免费| 欧美激情第一页xxx| 在线视频免费一区二区| 国产精品pans私拍| 国产精品久久久久久久久久久久久久| 午夜精品99久久免费| 欧美裸体xxxx极品少妇| 国产成人avxxxxx在线看| 最新国产成人av网站网址麻豆| 日本精品久久久久影院| 911国产网站尤物在线观看| 亚洲精品一区二区网址| 欧美日韩亚洲一区二区三区| 欧美性极品xxxx做受| xxxxx91麻豆| 日韩欧美国产中文字幕| 精品视频在线播放| 欧美日韩一区二区精品| 国产精品九九久久久久久久| 日韩一区二区精品视频| 91久久久久久| 欧美性猛交xxxx乱大交3| 欧美性极品少妇精品网站| 欧美理论电影网| 日本久久久久久久久| 成人精品视频99在线观看免费| 午夜精品一区二区三区在线视| 国产精品video| 久久免费少妇高潮久久精品99| 成人黄色免费在线观看| 欧洲午夜精品久久久| 亚洲有声小说3d| 国产精品一二三视频| 91香蕉国产在线观看| 亚洲人精选亚洲人成在线| 日韩精品高清视频| 久久国产天堂福利天堂| 欧美日韩免费看| 国产精品99免视看9| 亚洲欧美另类自拍| 在线视频中文亚洲| 成人黄色生活片| 久久精品在线视频| 欧美超级免费视 在线| 国产成人在线视频| 日韩在线视频观看正片免费网站| 国产91在线高潮白浆在线观看| 国产欧美精品日韩精品| 日韩欧美视频一区二区三区| 国产亚洲成av人片在线观看桃| 午夜精品免费视频| 国产精品福利网站| 精品国产网站地址| 97超碰蝌蚪网人人做人人爽| 日韩视频亚洲视频| 亚洲专区中文字幕| 成人国产精品久久久久久亚洲| 成人国产在线激情| 亚洲在线观看视频| xxx成人少妇69| 中文字幕不卡av| 中文字幕免费精品一区| 日韩欧美在线视频| 欧美性少妇18aaaa视频| 国产精品夜色7777狼人| 国产91免费观看| 国产精品久久综合av爱欲tv| 国产va免费精品高清在线观看| 亚洲性日韩精品一区二区| 国产69精品久久久久99| 日韩在线观看av| 日韩美女激情视频| 日韩成人在线免费观看| 日韩国产高清视频在线| 日韩**中文字幕毛片| 日韩视频在线观看免费| 欧美性xxxx在线播放| 91精品视频在线免费观看| 中文欧美在线视频| 精品日本高清在线播放| 国产成人自拍视频在线观看| 日韩有码在线播放| 亚洲xxxx视频| 欧洲s码亚洲m码精品一区| 欧美日本在线视频中文字字幕| 欧美色道久久88综合亚洲精品| 亚洲精品电影网站| 国产suv精品一区二区三区88区| 中国人与牲禽动交精品| 原创国产精品91| 国产精品视频精品视频| 久久91亚洲人成电影网站| 欧美国产日韩视频| 亚洲美女在线观看| 欧美日韩激情美女| 中文字幕欧美日韩| 成人羞羞国产免费| 亚洲欧洲在线播放| 日韩av一区在线| 亚洲天堂成人在线视频| 欧美性猛xxx| 久久久久久久久久亚洲| 日韩中文字幕欧美| 亚洲精品永久免费| 欧美成人午夜剧场免费观看| 一区二区三区国产在线观看|