Académique Documents
Professionnel Documents
Culture Documents
Accueil > Cours > Construisez un site web à l’aide du framework Symfony 5 > Déboguez votre application à l’aide
du Web Profiler
20 heures Moyenne
Mis à jour le 08/07/2022
<?php
// public/index.php
use Symfony\Component\HttpFoundation\Request;
require __DIR__.'/../vendor/autoload.php';
$environment = 'prod';
$debugEnabled = false;
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 1/8
18/07/2022 07:14 Déboguez votre application à l’aide du Web Profiler - Construisez un site web à l’aide du framework Symfony 5 - OpenClassr…
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
Ce qu'il est important de retenir ici, c'est qu'une configuration spécifique de l'application sera
chargée en fonction de l'environnement sélectionné.
.
├── packages/
│ ├── dev/
│ ├── prod/
│ ├── test/
│ ├── framework_extra.yaml
│ ├── framework.yaml
│ ├── doctrine_migrations.yaml
│ ├── routing.yaml
│ ├── security.yaml
│ ├── swiftmailer.yaml
│ ├── doctrine.yaml
│ ├── translation.yaml
│ ├── twig_extensions.yaml
│ └── twig.yaml
├── services_test.yaml
└── services.yaml
Pour comprendre la puissance et la flexibilité du système, voici comment sont chargés les fichiers
de configuration lors de l'exécution de l'application :
D'abord, tous les fichiers disponibles à la racine du dossier packages sont chargés.
Ensuite, tous les fichiers disponibles dans le dossier packages/{environnement} sont
chargés.
Troisièmement, le fichier services (l'extension importe peu) sera chargé.
Et pour conclure, le fichier services_{environnement} (s'il existe) sera chargé.
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 2/8
18/07/2022 07:14 Déboguez votre application à l’aide du Web Profiler - Construisez un site web à l’aide du framework Symfony 5 - OpenClassr…
Sachant que, si une configuration est déjà décrite dans un fichier précédent, elle sera
surchargée.
Eh bien, c'est très simple ! À la racine de votre projet, vous retrouvez un fichier appelé .env qui
contient les variables d'environnement qui seront disponibles dans votre application. Les deux
variables qui nous intéressent ici se nomment APP_ENV et APP_DEBUG :
text
# .env
Mode de débogage
Le mode de débogage n'a pas de rapport direct avec l'environnement sélectionné dans
l'application de Symfony, même s'il sera généralement activé en environnement de test et de
développement, et désactivé en environnement de production.
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 3/8
18/07/2022 07:14 Déboguez votre application à l’aide du Web Profiler - Construisez un site web à l’aide du framework Symfony 5 - OpenClassr…
La barre de débogage
En environnement de développement, une barre de débogage est automatiquement injectée
dans la page HTML retournée à l'utilisateur :
Cette barre apporte de nombreuses informations récoltées lors de l'exécution de votre application
:
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 4/8
18/07/2022 07:14 Déboguez votre application à l’aide du Web Profiler - Construisez un site web à l’aide du framework Symfony 5 - OpenClassr…
à gauche, le code HTTP de la réponse : si tout s'est bien passé, ce bloc sera en vert, sinon en
rouge ;
le nom de la route qui a été trouvée et exécutée par l'application : "homepage" ;
des informations de performance : la page s'est exécutée en 90 millisecondes, a consommé
2 mégabytes de mémoire vive et occasionné 61 appels au cache applicatif ;
des informations sur l'internationalisation : 16 clés de traduction ont été affichées ;
des informations sur la base de données : 3 requêtes SQL ont été exécutées ;
et la version du framework utilisée !
L'ensemble des blocs affichent un complément d'information au survol de la souris, et cliquer sur
la barre de débogage permet d'accéder au Profileur Web.
Le Profileur Web
Le Profileur Web est une application permettant de récolter, de traiter et d'afficher des
informations lors de l'exécution d'une application Symfony. Pour chaque profil établi, un token
unique est créé et permet d'accéder aux informations du profil généré :
Vous aurez l'occasion de parcourir les différents onglets de cette application lorsque vous
développerez vos applications. Voici quelques points importants à retenir :
l'onglet "Performances" qui est présenté en détail dans le cours sur la performance PHP
vous donne de nombreuses informations sur l'exécution de votre application ;
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 5/8
18/07/2022 07:14 Déboguez votre application à l’aide du Web Profiler - Construisez un site web à l’aide du framework Symfony 5 - OpenClassr…
l'onglet "Configuration" contient un lien vers la configuration de PHP, en plus des modules
installés (on dit "bundle") ;
l'onglet "Routing" est utile pour comprendre pourquoi la page affichée n'est peut-être pas
celle que vous attendiez ;
enfin, dans les en-têtes de la réponse HTTP de votre page, vous retrouverez le token du
profil généré lors de l'exécution de la page : très utile si vous développez une application
REST.
... et c'est d'ailleurs sur ce type d'application que vous allez travailler dans l'exercice qui suit.
Pour une application REST, on peut toujours retrouver le token, mais si l'on doit générer un profil
à chaque fois que l'on essaye de corriger l'application, cela risque d'être long et un peu pénible...
Symfony embarque un serveur de débogage qui affichera le résultat en console de tout élément
qui aura été "dumpé" dans l'application (la fonction dump() étant un var_dump() amélioré fourni
avec le framework Symfony).
C'est à vous !
En résumé
Une application Symfony possède plusieurs environnements qui correspondent à des
configurations différentes en fonction du contexte : en production, en développement ou
encore en environnement de test. Sur votre machine, vous éditerez un fichier appelé .env dans
lequel vous pourrez choisir quel environnement charger et d'activer le gestionnaire d'erreurs.
Elle dispose d'un gestionnaire d'erreurs qui permet d'afficher de nombreuses informations
supplémentaires en cas d'erreurs dans votre application.
Couplé à la barre de débogage et au profileur web, vous disposez d'un outillage extraordinaire
pour parvenir à trouver la source d'une erreur et la corriger.
En plus de la fonction dump() disponible depuis les toutes premières versions de Symfony, vous
pouvez activer un serveur de débogage, bien utile quand l'accès au profileur web est difficile ou
impossible (comme dans le cas d'une application en ligne de commandes).
Maintenant que vous êtes équipé pour corriger tout type d'erreur, il est temps de voir comment
dynamiser vos vues à l'aide de Twig et l'accès à une base de données à l'aide de Doctrine ORM.
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 6/8
18/07/2022 07:14 Déboguez votre application à l’aide du Web Profiler - Construisez un site web à l’aide du framework Symfony 5 - OpenClassr…
Le professeur
Mickaël Andrieu
Consultant et Formateur Web / Data
OPENCLASSROOMS
OPPORTUNITÉS
AIDE
EN PLUS
Français
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 7/8
18/07/2022 07:14 Déboguez votre application à l’aide du Web Profiler - Construisez un site web à l’aide du framework Symfony 5 - OpenClassr…
https://openclassrooms.com/fr/courses/5489656-construisez-un-site-web-a-l-aide-du-framework-symfony-5/5516996-deboguez-votre-application-… 8/8