Skip to main content

Cos’è il trait Dumpable

Illuminate\Support\Traits\Dumpable è un piccolo trait che aggiunge dump() e dd() a una classe qualsiasi. Introdotto in Laravel 10, è largamente utilizzato dal core di Laravel — Collection, Eloquent Builder, Request — per unificare l’esperienza di debug. L’obiettivo è semplice: ispezionare un oggetto come farebbe var_dump e, se necessario, interrompere l’esecuzione sul posto.

Analisi dell’implementazione

L’implementazione è molto semplice: chiama solo dump($this, ...$args) e dd($this, ...$args).
L’implementazione di Laravel 13 si trova in src/Illuminate/Support/Traits/Dumpable.php. La firma reale è espressa con PHPDoc come @return $this e @return never.

Usarlo nelle tue classi

Basta aggiungere use Dumpable; per avere dump() / dd() come metodi d’istanza.

Inserire debug all’interno di una catena

dump() restituisce static (di fatto $this), quindi puoi inserirlo in sicurezza nel mezzo di una catena di metodi.
Sostituendolo con dd(), l’esecuzione si ferma in quel punto: comodo quando vuoi verificare lo stato prima di un’elaborazione pesante successiva.

Utilizzo nello sviluppo di pacchetti

Aggiungere Dumpable ai tuoi Value Object, DTO e Builder consente agli utenti di ispezionare lo stato senza tool aggiuntivi.
1

Aggiungerlo a un Value Object / DTO

2

Verificare a metà di un Fluent Builder

Passare argomenti aggiuntivi

Internamente Dumpable chiama dump($this, ...$args) / dd($this, ...$args), così puoi stampare informazioni di contesto insieme all’oggetto.
Utile quando usi dump() in più punti: identifichi subito da quale posizione arriva l’output.

Trait correlati

Helper tap() / Tappable

Impara il pattern per applicare side effect restituendo comunque il valore.

Trait Conditionable

Impara a diramare condizionalmente le catene di elaborazione.

Trait Macroable

Impara a estendere classi esistenti aggiungendo metodi personalizzati.
Ultima modifica il 13 luglio 2026