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 :

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 / float42
booltrue / false
nullnull
arrayRepliable avec clés/index colorés
objectNom de classe + propriétés repliables