首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Laravel 請求生命週期深度解析

     編輯:PHP 綜合知識

概述

理解框架啟動流程有助於更有效地開發、除錯與擴展。本文從請求進入到回應輸出,梳理 Laravel 的核心啟動機制。

請求生命週期完整流程

  1. 進入點:所有請求經 public/index.php(Apache 透過 .htaccess 重寫)。
  2. 啟動引導:載入 bootstrap/start.php,建立 Application 物件(同時是 IoC 容器)、設定路徑、環境檢測。
  3. 框架核心引導:執行 vendor/laravel/framework/src/Illuminate/Foundation/start.php,載入時區、錯誤報告等設定,註冊所有服務提供者。
  4. 應用啟動檔:載入 app/start/ 下檔案(global.php、local.php、環境專屬檔)。
  5. 路由載入:載入 app/routes.php。
  6. 分發請求:將 Request 物件送入 Application,路由匹配、執行控制器、生成 Response。
  7. 回應輸出:將 Response 送回客戶端。

服務提供者:核心引導機制

app/config/app.php 的 providers 陣列列出所有服務提供者。每個提供者包含 register() 方法,向 IoC 容器綁定服務(閉包)、註冊事件監聽、視圖合成器、Artisan 命令等。

服務提供者是 Laravel 可擴展性的關鍵:核心組件(Routing、Queue、Cache、Auth...)皆透過提供者註冊。

啟動檔

  • app/start/global.php:所有環境載入,預設含日誌註冊、app/filters.php 載入。
  • app/start/local.php:僅 local 環境載入。
  • app/start/{environment}.php:自定環境對應檔案。

啟動檔放置「引導性質」代碼:視圖合成器、日誌設定、PHP 設定等。大型應用建議遷移至服務提供者避免檔案膨脹。

應用程式事件

// 請求處理前
App::before(function ($request) { ... });

// 請求處理後、回應送出前
App::after(function ($request, $response) { ... });

// 回應送達客戶端後
App::finish(function ($request, $response) { ... });

// 腳本結束前最後機會
App::shutdown(function () { ... });

可用於全域過濾器、統一回應修改、收尾清理工作。通常在啟動檔或服務提供者中註冊。

總結

Laravel 的請求生命週期以 Application 容器為核心,透過服務提供者完成組件註冊,啟動檔處理環境差異,最後由路由分發執行業務邏輯。掌握此流程有助於理解框架行為、編寫擴展包、排查疑難雜症。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved