Dumper
Visualisez le contenu de vos variables pendant le debug avec un panneau intégré à la page.
Note : Le Dumper ne fonctionne que lorsque
app.debug est true dans votre configuration.
En production, les appels à dump() sont ignorés (coût zéro).
Installation
Ajoutez le Dumper_middleware dans vos middleware globaux, en premier dans la liste :
// config.php
'middleware' => [
'global' => [
\River\Middleware\Dumper_middleware::class, // En premier !
\River\Middleware\Cors_middleware::class,
\River\Middleware\Security_middleware::class,
\River\Middleware\Session_middleware::class,
\River\Middleware\Csrf_middleware::class,
],
],
Assurez-vous que APP_DEBUG=true dans votre .env :
APP_DEBUG=true
Utilisation
dump(...$vars)
Collecte une ou plusieurs variables pour affichage. La page se rend normalement, et un panneau debug apparaît en bas à droite.
public function index(): Response {
$users = $this->db->select('SELECT * FROM users');
dump($users); // Collecté, pas de die()
return $this->render('users/index', [
'users' => $users,
]);
// → la page s'affiche normalement avec un badge "🔍 1" en bas à droite
}
Plusieurs variables d'un coup :
dump($request->method(), $request->uri(), $users);
// → le badge affichera "🔍 3"
dd(...$vars)
Dump and die — affiche les variables dans une page standalone et arrête l'exécution. Utile pour inspecter rapidement sans construire la page.
public function show(): Response {
$user = $this->db->select_one('SELECT * FROM users WHERE id = ?', [$id]);
dd($user); // Affiche et stop
return $this->render(...); // Jamais atteint
}
Le panneau debug
Quand vous utilisez dump(), un badge flottant apparaît en bas à droite de la page avec le nombre de dumps. Cliquez dessus pour ouvrir le panneau :
- Chaque dump affiche le fichier et la ligne de l'appel
- Les types sont colorés (strings en vert, ints en bleu, null en rouge...)
- Les arrays et objets sont repliables (clic pour déplier)
- Les propriétés d'objets affichent la visibilité (+public, #protected, -private)
Comportement selon le contexte
| Type de réponse | Comportement |
|---|---|
| HTML (page complète) | Panneau injecté avant </body> |
| JSON | Clé _debug ajoutée au JSON |
| Fragment HTMX | Ignoré (pas de </body>). Utilisez dd() pour debugger |
| Redirect | Dumps perdus. Utilisez dd() avant le redirect |
Types supportés
| Type | Rendu |
|---|---|
string | "valeur" (longueur) |
int / float | 42 |
bool | true / false |
null | null |
array | Repliable avec clés/index colorés |
object | Nom de classe + propriétés repliables |