Skip to main content

什麼是 Dumpable trait

Illuminate\Support\Traits\Dumpable 是一個為任意類別加入 dump()dd() 的小巧 trait。於 Laravel 10 引入,Collection、Eloquent Builder、Request 等 Laravel Core 中都廣泛使用它,用於統一除錯體驗。 目的很簡單。以類似 var_dump 的方式檢查物件,並在必要時當場中止處理。

確認實作

實作非常簡單,只是呼叫 dump($this, ...$args)dd($this, ...$args)
Laravel 13 的實作位於 src/Illuminate/Support/Traits/Dumpable.php。實際的簽章以 PHPDoc @return $this@return never 表達。

於自訂類別使用

只要加上 use Dumpable;,便可作為實例方法使用 dump() / dd()

於鏈中間插入除錯

dump() 會回傳 static(實作上為 $this),因此可安全地插入方法鏈之中。
若替換為 dd(),處理會在該處停止,適合在沉重的後續處理前確認狀態。

套件開發的活用

若在自訂的 Value Object、DTO、Builder 中加入 Dumpable,使用者無需額外工具便可確認狀態。
1

加入 Value Object / DTO

2

於 Fluent Builder 中間進行確認

傳入額外引數

Dumpable 內部會呼叫 dump($this, ...$args) / dd($this, ...$args),因此可將情境資訊一併輸出。
於多處使用 dump() 時特別有用,可立刻辨別是在哪個地點輸出的。

相關 trait

tap() helper / Tappable

學習在插入副作用同時回傳值的模式。

Conditionable trait

學習有條件地分支鏈式處理的設計。

Macroable trait

學習擴充既有類別以加入自訂方法的方法。
最後修改於 2026年8月2日