Skip to main content

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 を入れておくと、利用者が追加ツールなしで状態確認できます。
1

Value Object / DTOに追加する

2

Fluent Builderの途中で確認する

追加引数を渡す

Dumpable は内部で dump($this, ...$args) / dd($this, ...$args) を呼ぶため、文脈情報を一緒に出力できます。
これは複数箇所で dump() を使うときに有効です。どの地点で出力されたのかをすぐ判別できます。

関連トレイト

tap() ヘルパー / Tappable

副作用を挟みつつ値を返すパターンを学びます。

Conditionableトレイト

条件付きでチェーン処理を分岐する設計を学びます。

Macroableトレイト

既存クラスを拡張して独自メソッドを追加する方法を学びます。
最終更新日 2026年5月24日