Dumpableトレイトとは
Illuminate\Support\Traits\Dumpable は、任意のクラスに dump() と dd() を追加するための小さなトレイトです。Laravel 10で導入され、Collection・Eloquent Builder・Request などLaravelコアのデバッグ体験を統一するために広く使われています。
目的はシンプルです。オブジェクトを 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 を入れておくと、利用者が追加ツールなしで状態確認できます。
追加引数を渡す
Dumpable は内部で dump($this, ...$args) / dd($this, ...$args) を呼ぶため、文脈情報を一緒に出力できます。
dump() を使うときに有効です。どの地点で出力されたのかをすぐ判別できます。
関連トレイト
tap() ヘルパー / Tappable
副作用を挟みつつ値を返すパターンを学びます。
Conditionableトレイト
条件付きでチェーン処理を分岐する設計を学びます。
Macroableトレイト
既存クラスを拡張して独自メソッドを追加する方法を学びます。