- Introduction
- Installation et configuration
- Fonctionnalités principales
- Exemple pratique
- Astuces avancées
- Avantages
- Bonnes pratiques
- Voir aussi
Introduction
Le développement d’une application Laravel implique souvent de surveiller ce qui se passe en arrière-plan : requêtes SQL, temps d’exécution, variables, logs, etc.
Bien qu’on puisse utiliser les logs Laravel ou l’outil dd()/dump(), ces méthodes sont limitées.
C’est là que Laravel Debugbar entre en jeu : une barre d’outils intégrée à votre navigateur, affichant en temps réel des informations essentielles sur votre application.
Installation et configuration
Étape 1 : Installation via Composer
1composer require barryvdh/laravel-debugbar --devÉtape 2 : Publication de la configuration (optionnelle)
1php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"Cela crée un fichier config/debugbar.php que vous pouvez personnaliser.
Étape 3 : Vérifier l’environnement
Assurez-vous que Debugbar n’est activé qu’en local. Dans .env :
1APP_ENV=local2APP_DEBUG=trueEn production, il est crucial de désactiver Debugbar (APP_DEBUG=false).
Fonctionnalités principales
Laravel Debugbar est composé de plusieurs onglets que vous verrez en bas de votre page :
1. Requêtes SQL
- Liste toutes les requêtes SQL exécutées.
- Montre la durée de chaque requête.
- Indique la ligne de code qui a généré la requête.
- Permet de repérer facilement le problème du N+1 (plusieurs requêtes inutiles au lieu d’une seule).
2. Timeline (Performance)
- Visualisation du temps d’exécution de chaque étape du cycle de vie Laravel.
- Indique clairement où se situent les lenteurs (middleware, contrôleur, vues, etc.).
3. Vues Blade
- Liste toutes les vues rendues par Laravel.
- Indique quelles variables ont été passées à la vue.
4. Logs & Exceptions
- Montre directement vos appels
Log::info(),Log::error(), etc. - Affiche les exceptions et leur stack trace.
5. Routes & Requêtes HTTP
- Indique la route exécutée (
GET /users). - Précise le contrôleur et la méthode associée.
- Montre les données envoyées (
$_GET,$_POST,$_SESSION).
6. Événements, Jobs & Mail
- Liste les événements déclenchés (
Event::dispatch). - Montre les jobs envoyés à la file d’attente.
- Affiche les emails générés par Laravel.
Exemple pratique
Contrôleur
1public function index()2{3 $users = User::with('posts')->get();4 5 \Debugbar::info($users); // Exemple : afficher directement dans Debugbar6 7 return view('users.index', compact('users'));8}Résultat avec Debugbar
- Dans l’onglet Requêtes SQL, vous verrez :
1select * from users;2select * from posts where user_id in (...);
- Dans Vues, vous retrouverez
users.indexet les données associées. - Dans Logs, vous verrez votre appel
Debugbar::info($users).
Astuces avancées
1. Marquer des points de performance
Vous pouvez mesurer le temps d’exécution de morceaux précis de votre code :
1\Debugbar::startMeasure('custom', 'Traitement personnalisé');2 3// Votre code4sleep(2);5 6\Debugbar::stopMeasure('custom');Résultat : un nouveau bloc "custom" apparaît dans l’onglet Timeline.
2. Ajouter des messages personnalisés
Debugbar permet d’afficher différents types de messages :
1\Debugbar::info('Ceci est une information');2\Debugbar::warning('Attention, possible problème');3\Debugbar::error('Erreur détectée');3. Inspecter les variables
Vous pouvez inspecter n’importe quelle variable :
1$user = User::first();2\Debugbar::dump($user);4. Déboguer vos requêtes Eloquent
Pour vérifier une requête avant son exécution :
1$query = User::where('active', true);2\Debugbar::info($query->toSql());Avantages
- Gain de temps dans l’analyse et le débogage.
- Vision claire des requêtes et du cycle de vie.
- Optimisation facile des performances.
- Support natif pour Eloquent, Blade, routes, logs et événements.
Bonnes pratiques
- N’activer Debugbar que dans un environnement local.
- Désactiver
APP_DEBUGen production. - Ne pas l’utiliser pour mesurer les performances exactes en production (préférer un profiler comme Blackfire ou Telescope).
Voir aussi
- Site officiel de TweakPHP : https://laraveldebugbar.com/
- Dépôt Github : https://github.com/barryvdh/laravel-debugbar