iT邦幫忙

鐵人檔案

2019 iT 邦幫忙鐵人賽
回列表
Software Development

Laravel 原始碼分析 系列

Laravel 是目前 PHP 熱門的框架之一;它一定是好用,才會受到大家關注;那對開發者而言,什麼才是好用呢?具備「快速驗證」、「簡潔的程式碼」、「豐富的套件生態系」、「客製化容易」等特性的語言或框架,開發者肯定都會躍躍欲試。未來三十天,筆者將會試著分析 Laravel 原始碼,讓讀者了解什麼是好的架構,並在未來開發設計有好的方向可以參考。

鐵人鍊成 | 共 46 篇文章 | 98 人訂閱 訂閱系列文 RSS系列文
DAY 21

分析 Log

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

2018-11-05 ‧ 由 Miles 分享
DAY 22

分析 Facade

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

2018-11-06 ‧ 由 Miles 分享
DAY 23

分析 AliasLoader

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

2018-11-07 ‧ 由 Miles 分享
DAY 24

分析 Auth(1)

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

2018-11-08 ‧ 由 Miles 分享
DAY 25

分析 Auth(2)

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

2018-11-09 ‧ 由 Miles 分享
DAY 26

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

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

2018-11-10 ‧ 由 Miles 分享
DAY 27

分析 Auth(4)--Authorization

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

2018-11-11 ‧ 由 Miles 分享
DAY 28

分析 Auth(5)--Authorization

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

2018-11-12 ‧ 由 Miles 分享
DAY 29

分析 Auth(6)--Authorization

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

2018-11-13 ‧ 由 Miles 分享
DAY 30

總結

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

2018-11-14 ‧ 由 Miles 分享