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 solodump($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 aggiungereuse 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.
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
AggiungereDumpable ai tuoi Value Object, DTO e Builder consente agli utenti di ispezionare lo stato senza tool aggiuntivi.
Passare argomenti aggiuntivi
InternamenteDumpable chiama dump($this, ...$args) / dd($this, ...$args), così puoi stampare informazioni di contesto insieme all’oggetto.
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.