第十屆 優選

software-dev
Laravel 原始碼分析
Miles

系列文章

DAY 21

分析 Log

Laravel 的 Log 套件在 5.5 版之前,是使用 Writer 包裝 Monolog,成為一個 proxy pattern,被代理的類別則是寫死 Mo...

DAY 22

分析 Facade

Laravel 的 Facade 是個很神奇的設計。使用的時候是靜態呼叫,但實質上是對某個實例呼叫。也因這個特性,所以有辦法做測試替身(Test Double)...

DAY 23

分析 AliasLoader

昨天了解 Facade 基本原理後,可能會覺得奇妙的關鍵不過就是 Magic Method 而已,但其實 Laravel 還有更神奇的。 下面這兩個呼叫的結果是...

DAY 24

分析 Auth(1)

Auth 是筆者認為,在 Laravel 開放的 Illuminate 套件包裡(Support 除外),前三名複雜的。 註一:Support 除外的原因是,...

DAY 25

分析 Auth(2)

透過 AuthManager 取得 SessionGuard 實例,接著在 Authenticate Middleware 會呼叫 check() 方法驗證:...

DAY 26

分析 Auth(3)--客製化驗證機制

之前在分析套件都是只有在看 Laravel 原始碼,沒有任何客製化的範例,而今天會來示範如何客製化驗證機制。 雖然 Laravel 已經實作得很完整了,但不同的...

DAY 27

分析 Auth(4)--Authorization

前面我們看完了驗證(Authenticate)的實作,今天來看授權(Authorization)。 從官方文件可以大概知道它的主要角色有兩個:Gate 和 Po...

DAY 28

分析 Auth(5)--Authorization

繼續昨天,來看 Policy 怎麼串接的,一樣是那個範例: // Policy 定義法 Gate::define('update-post', 'PostPol...

DAY 29

分析 Auth(6)--Authorization

Laravel 文件有提到幾種方法來確認授權: Via The User Model Via Middleware Via Controller Helper...

DAY 30

總結

這麼多天以來,看了很多 Laravel 的程式,其實可以發現它有一些常見的模式。沒有好壞,只是一種可參考的寫法: 在 if 裡做 assign if ($use...