概述
本章節涵蓋官方文件中不易了解的 Laravel 內部實作,以及聚焦於套件開發的進階主題。我們將結合原始碼解讀,講解實用的設計模式與擴充方法。本頁面目前僅收錄部分頁面的正體中文翻譯,其餘頁面將陸續補上。
套件開發
套件的公開資源與更新
解說 JavaScript 與 CSS 的發布、tag 的選取範圍、覆寫,以及 Composer 更新時的重新公開。
套件翻譯的覆寫與更新
解說 PHP 翻譯的部分覆寫、JSON 翻譯的共用鍵,以及不破壞已公開翻譯的更新方式。
套件的服務解析後掛鉤
解說使用 callAfterResolving() 的延遲設定、套用到已解析的服務,以及冪等性的注意事項。
套件的 Artisan 指令註冊與相依性解析
解說註冊、實例化與執行的差異,以及透過對 handle() 注入相依性來隔離副作用。
套件的事件監聽器註冊與快取
解說明確註冊與自動偵測的差異、避免重複註冊,以及 event:cache 的對象與更新時的驗證。
套件服務的生命週期設計
解說 scoped 的內部實作、singleton 所持有的相依性,以及在長時間執行的 worker 中隔離狀態。
套件中介層的註冊與適用範圍
解說別名註冊與套用的分離、避免覆寫中介層群組,以及快取時的驗證。
套件的 Blade 擴充與編譯快取
解說自訂指令與條件式的執行時機,以及更新時的快取管理。
套件的 Storage 驅動程式註冊與重新解析
解說建立邏輯的註冊、磁碟的保留與重新解析,以及 fake 之外所需的驗證。
套件的自訂通知頻道與傳送驗證
解說以類別名稱解析頻道、收件者路由、佇列處理以及實際傳送測試。
套件的容器標籤與外掛彙整
解說 tagged() 的延遲解析與 giveTagged() 的陣列化,以及重複註冊與生命週期的注意事項。
套件的 HTTP 用戶端與測試
解說共用 Factory 的使用、每次請求的狀態隔離,以及以 fake 驗證通訊內容與例外。
套件的日誌通道擴充與重新解析
解說 custom 與 via、自訂驅動的註冊,以及考量已保留通道與 fallback 的驗證方式。
套件的自訂快取儲存與契約
解說註冊時機、Store 與 Repository 的分工、TTL 的轉換,以及鎖等功能的支援範圍。
套件的郵件傳輸註冊與測試
解說 Mailer 名稱與 Transport 名稱的區分、設定變更後的重新解析,以及 fake 無法確認的寄送路徑。
套件的情境屬性與相依解析
解說透過自訂屬性注入設定、解析優先順序、make 與 call 的差異,以及已建立服務的生命週期。
套件排程任務的註冊與維護
解說明確啟用、在 Schedule 解析後註冊、重複註冊與鎖定名稱,以及設定變更時的驗證。
套件的自訂 Session 驅動
解說處理器的儲存契約、明確選擇、TTL 與儲存格式,以及已建立 Store 的保留與驗證。
套件的資料庫連線擴充
解說以連線名稱與驅動名稱進行擴充、建立的優先順序,以及連線的保留與重新建立。
套件的動態關聯註冊
在不修改模型的情況下新增關聯,並驗證明確的鍵、名稱衝突與繼承,以及註冊狀態的生命週期。
在套件中註冊字串驗證規則
解說向 Factory 註冊、訊息與翻譯、Implicit 與 Dependent 的差異,以及已建立 Validator 的生命週期。
套件的回應 Macro 與 HTTP 契約
解說向 Factory 註冊、Closure 的綁定、名稱衝突與狀態的生命週期,以及 JSON 回應的相容性。
框架內部
once() helper 的內部實作
以 Once、Onceable 類別實現的 WeakMap 快取機制,以及在 Eloquent PreventsCircularRecursion 上的應用。
Eloquent 的 afterQuery 與查詢結果的契約
解說區域作用域的結果處理,以及各查詢方法在型別、執行次數與分頁判斷上的差異。
MCP 與 AI
用 Laravel 建構 MCP 伺服器
使用 laravel/mcp 套件建構可用於正式環境的 MCP 伺服器。涵蓋 Tool、Resource、Prompt 的實作以及驗證。
建立 AI SDK 的自訂 Provider
閱讀 Laravel AI SDK 的原始碼,為標準未提供的 AI 服務實作自訂 Provider。
建立 Boost 的自訂 Agent
深入 Laravel Boost 的擴充架構,講解如何建立自訂 Agent。
Laravel AI SDK 的 Agent 中介層
解說每個步驟的執行順序、模型回應後的處理,以及依累積 token 停止的方式。