Outils de dev et de debug

Symfony CLI, Flex, Maker Bundle, Web Profiler et commandes debug : l'outillage du quotidien.

Créé le 14 juin 2026·Mis à jour le 14 juin 2026
Voir 4 références

Introduction


La productivité d'un développeur Symfony tient autant au framework qu'à l'outillage qui l'entoure. Génération de code, inspection des requêtes, installation automatisée, serveur de développement : ces outils ne sont pas des gadgets, ils structurent le quotidien. Cette leçon fait le tour de ceux qu'on utilise tous les jours, et qu'il faut connaître pour ne pas perdre de temps sur des problèmes déjà résolus.

Symfony CLI


Le binaire symfony est l'outil en ligne de commande officiel, distinct de bin/console (qui, lui, pilote l'application). Il fournit :

  • Un serveur de développement local avec HTTPS automatique et détection de la version de PHP :
symfony serve -d        # démarre en arrière-plan
symfony server:log      # suit les logs
  • L'intégration de Docker : les services déclarés dans compose.yaml (base de données, Redis) sont automatiquement exposés à l'application via des variables d'environnement.
  • Un checker de sécurité qui audite les dépendances contre la base de CVE connues :
symfony check:security
  • Le déploiement vers Symfony Cloud (Platform.sh) pour qui l'utilise.

Le serveur intégré est nettement plus pratique que php -S : il gère les certificats, la concurrence et l'intégration des services sans configuration.

Symfony Flex


Vu dans la leçon sur les bundles, Flex mérite sa place ici comme outil du quotidien. C'est le plugin Composer qui applique les recipes : à chaque composer require, il crée la configuration par défaut, enregistre le bundle et met à jour .env. Il introduit aussi les alias, qui raccourcissent l'installation :

composer require orm        # installe et configure Doctrine
composer require logger     # installe et configure Monolog
composer require --dev maker

Sans Flex, chacune de ces commandes demanderait ensuite plusieurs fichiers de configuration à écrire à la main.

Le Maker Bundle


symfony/maker-bundle génère le code répétitif à partir de commandes interactives. Il ne remplace pas la compréhension du framework, mais épargne la frappe de squelettes et garantit qu'ils suivent les conventions à jour.

php bin/console make:controller ProductController
php bin/console make:entity Product
php bin/console make:user
php bin/console make:migration
php bin/console make:voter ProductVoter
php bin/console make:test

make:entity est particulièrement utile : en mode interactif, il ajoute des propriétés à une entité existante, gère les relations Doctrine et met à jour le getter/setter. C'est un dérouleur de boilerplate, à n'utiliser qu'en environnement de développement (['dev' => true] dans bundles.php).

Le Web Profiler et la Debug Toolbar


C'est l'outil emblématique de Symfony en développement. Le WebProfilerBundle ajoute, en bas de chaque page HTML, une barre de debug (Web Debug Toolbar) résumant tout ce qui s'est passé pendant la requête.

D'un coup d'oeil, on y lit :

IndicateurInformation
Temps et mémoireDurée totale de la requête et pic mémoire
Requêtes SQLNombre et durée des requêtes Doctrine, détection du N+1
SécuritéUtilisateur authentifié, firewall actif, rôles, token
ÉvénementsListeners déclenchés, dans l'ordre et avec leur durée
TwigTemplates rendus, blocs, temps de rendu
MessengerMessages dispatchés et leur transport

Cliquer sur la barre ouvre le profiler complet, qui conserve l'historique des requêtes. C'est l'outil de référence pour diagnostiquer une requête lente, comprendre pourquoi un accès est refusé, ou traquer un problème N+1. Il s'active uniquement en environnement dev, jamais en production.

composer require --dev profiler

La console et le composant Debug


bin/console est le point d'entrée de toutes les commandes. Quelques-unes sont incontournables pour l'inspection :

php bin/console debug:router            # toutes les routes et leurs contrôleurs
php bin/console debug:container         # tous les services du conteneur
php bin/console debug:autowiring Mailer # quels types sont autowirables
php bin/console debug:config framework  # config résolue d'un bundle
php bin/console debug:event-dispatcher  # listeners par événement

Ces commandes debug:* répondent à des questions qu'on se pose sans cesse : « quel service est injecté pour cette interface ? », « à quoi correspond cette route ? », « quels listeners écoutent cet événement ? ». Elles évitent de fouiller le code à la main.

Résumé


OutilUsage
Symfony CLIServeur de dev HTTPS, intégration Docker, audit de sécurité
FlexRecipes et alias, installation/configuration automatisée
Maker BundleGénération du code répétitif (entités, contrôleurs, voters)
Web Profiler / ToolbarInspection complète d'une requête, en dev uniquement
Commandes debug:*Interroger routeur, conteneur, autowiring, événements

Ces outils partagent un trait : ils rendent visible ce que le framework fait pour vous. Bien les maîtriser, c'est passer de l'usage incantatoire de Symfony à une compréhension claire de son comportement, et diagnostiquer en minutes ce qui prendrait des heures sans eux.