分析自定義錯誤頁
官方有提到自定義錯誤頁可以如何簡單達成。遇到的問題是,想自定義錯誤頁,並在 debug 模式下,當隨意丟例外的時候,要在頁面某個地方列出 call stack trace。
從今天開始,會開始換來分享實作功能中遇到問題,而去追原始碼的過程。不知道能持續多久,就繼續寫吧!
結論先講:這無法單純使用自定義錯誤頁實作出來的,需要客製化某些程式才有辦法做。因為只是 debug 要用,所以就立馬放棄了。
文件有提到自定義錯誤頁會接到 abort() 函式產生的 HttpException 並注入頁面的 $exception 變數。
總結
這麼多天以來,看了很多 Laravel 的程式,其實可以發現它有一些常見的模式。沒有好壞,只是一種可參考的寫法。
分析 Auth(6)--Authorization
Laravel 文件有提到幾種方法來確認授權。
分析 Auth(5)--Authorization
繼續昨天,來看 Policy 怎麼串接的。
分析 Auth(4)--Authorization
前面我們看完了驗證(Authenticate)的實作,今天來看授權(Authorization)。
分析 Auth(3)--客製化驗證機
之前在分析套件都是只有在看 Laravel 原始碼,沒有任何客製化的範例,而今天會來示範如何客製化驗證機制。
分析 Auth(2)
透過 AuthManager 取得 SessionGuard 實例,接著在 Authenticate Middleware 會呼叫 check() 方法驗證。
分析 Auth(1)
Auth 在 Laravel 開放的 Illuminate 套件包裡(Support 除外),可能是前三名複雜的。
分析 AliasLoader
昨天了解 Facade 基本原理後,可能會覺得奇妙的關鍵不過就是 Magic Method 而已,但其實 Laravel 還有更神奇的。
分析 Facade
Laravel 的 Facade 是個很神奇的設計。使用的時候是靜態呼叫,但實質上是對某個實例呼叫。也因這個特性,所以有辦法做測試替身(Test Double)。