Qu’est-ce que le trait Dumpable
Illuminate\Support\Traits\Dumpable est un petit trait qui ajoute dump() et dd() à n’importe quelle classe. Introduit dans Laravel 10, il est largement utilisé au sein du cœur de Laravel (Collection, Eloquent Builder, Request, etc.) pour uniformiser l’expérience de débogage.
L’objectif est simple : inspecter un objet à la manière de var_dump et, si besoin, arrêter le traitement sur place.
Vérifier l’implémentation
L’implémentation est très simple : elle se contente d’appelerdump($this, ...$args) et dd($this, ...$args).
L’implémentation Laravel 13 se trouve dans
src/Illuminate/Support/Traits/Dumpable.php. Les signatures réelles expriment @return $this et @return never en PHPDoc.Utilisation dans votre propre classe
En ajoutant simplementuse Dumpable;, vous obtenez dump() / dd() comme méthodes d’instance.
Insérer un debug au milieu d’une chaîne
Commedump() retourne static (en pratique $this), vous pouvez l’utiliser sans risque au milieu d’une chaîne de méthodes.
dd(), le traitement s’arrête à ce point : pratique lorsque vous voulez inspecter l’état avant un traitement lourd qui suit.
Utilisation dans le développement de packages
InclureDumpable dans vos Value Objects, DTO ou Builders permet à vos utilisateurs d’inspecter l’état sans outil supplémentaire.
Passer des arguments supplémentaires
CommeDumpable appelle en interne dump($this, ...$args) / dd($this, ...$args), vous pouvez afficher des informations de contexte en même temps.
dump() à plusieurs endroits. Vous identifiez immédiatement d’où provient chaque sortie.
Traits associés
Helper tap() / Tappable
Découvrez le pattern qui insère un effet de bord tout en retournant la valeur.
Trait Conditionable
Apprenez à concevoir des chaînes conditionnelles.
Trait Macroable
Étendez des classes existantes avec vos propres méthodes.