探索 Laravel 核心機制與生命週期
Laravel 功能相當強大且實用,本篇文章將逐步探索 Laravel 核心生命週期機制和註解理解的流程和功能,不難發現其實核心設計是相當巧妙且具有高彈性和客製化,從 public/index.php 進入點出發,理解其核心運作原理和概念會有助於後續客製化和開發,文末會簡單列出核心步驟方便大家在設計代碼時參考。 Entry point // public/index.php <?php use Illuminate\Contracts\Http\Kernel; use Illuminate\Http\Request; // 定義了常數 LARAVEL_START,其值為當前時間的微秒數,用於計算應用程式的啟動時間 define('LARAVEL_START', microtime(true)); // 檢查應用程式是否處於維護模式。 // 如果存在,則引入該檔案。維護模式用於暫時關閉應用程式,以進行維護或升級。 if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) { require $maintenance; } // 用於自動載入所需的依賴項和類別 require __DIR__.'/../vendor/autoload.php'; // 這邊會細說,這邊會返回 app instance $app = require_once __DIR__.'/../bootstrap/app.php'; // 使用 Service Container 解析實作 Http Kernel 接口的實例。 $kernel = $app->make(Kernel::class); // 使用 Request::capture() 捕獲了當前的請求,並將其傳遞給 handle() 方法進行處理。handle() 方法處理請求並返回一個回應對象,並將其賦值給 $response 變數。 $response = $kernel->handle( $request = Request::capture() )->send(); // 使用 terminate() 方法通知 Kernel 實例已經處理完畢,並傳遞了原始請求和回應對象。這個方法在應用程式執行結束後執行,例如在回應被送出到瀏覽器之後。 $kernel->terminate($request, $response); 核心 Application: Service Container 上面代碼是講述 Laravel 整個生命週期運行的步驟,接下來說明 app....