Vous êtes sur la page 1sur 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…

Accueil > Cours > Construisez un site web à l’aide du framework Symfony 5 > Déboguez votre application à l’aide
du Web Profiler

Construisez un site web à l’aide du framework


Symfony 5

20 heures  Moyenne
Mis à jour le 08/07/2022

 

Déboguez votre application à l’aide du Web


Profiler

Passez en environnement de développement


Le Profileur Web est une application délivrée avec le framework Symfony uniquement disponible
en environnement de développement... mais qu'est-ce qu'un environnement ?

Environnement et gestionnaire d'erreurs


Rappelez-vous lorsque nous avions vu un exemple de contrôleur frontal du framework Symfony :
php

<?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…

$kernel = new AppKernel($environment, $debugEnabled);

$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

Volontairement, nous n'avions pas abordé l'utilité des variables $environnement et


$debugEnabled.

L'environnement correspond à la configuration sélectionnée lors de l'exécution de l'application, et


par défaut, Symfony en fournit trois : "prod", "dev" et "test", et vous pouvez en créer autant que
vous le souhaitez.

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é.

Regardons ensemble la configuration d'une application de démonstration, habituellement


localisée dans le dossier config :

.
├── 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.

Les trois environnements "prod", "dev" et "test" correspondent à la configuration disponible


dans les trois sous-dossiers du dossier config/packages, qui peut être complétée par un
fichier supplémentaire nommé services_{environnement}.

D'accord, j'ai compris : mais comment sélectionne-t-on un environnement?

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

###> symfony/framework-bundle ###


APP_ENV=prod # ou "dev" ou "test"
APP_DEBUG=0 # ou 1 pour désactiver
# ...
###< symfony/framework-bundle ###

Bingo ! En changeant uniquement le contenu de ce fichier, vous passez votre application en


environnement de développement ou de production.

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.

Ce mode de débogage permet d'activer un puissant gestionnaire d'erreurs et de désactiver la


mise en cache des éléments de configuration et de gabarit : c'est généralement ce que l'on
souhaite lorsque l'on développe ou teste son application.

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…

Le gestionnaire d'erreurs de Symfony

En environnement de production, les erreurs ne seront pas affichées et il sera possible de


configurer des pages d'erreurs spécifiques.

Découvrez le Profileur Web


Le Profileur Web est une application d'aide au développement activée en environnement de
développement, constituée de deux éléments principaux : une barre de débogage et une
application web de profilage.

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 :

Barre de débogage du framework Symfony

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 !

Vous pouvez ajouter ou altérer les informations de cette barre de développement.

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é :

Le Profileur Web de Symfony

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.

Déboguez une API REST avec le serveur de développement


Il reste un dernier sujet à traiter : comment faire lorsque l'application à développer n'est pas une
application qui génère du HTML, comme une application en ligne de commande ou encore une
application REST ?

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).

Je vous propose donc d'expérimenter cette nouvelle fonctionnalité en essayant de corriger


l'application REST fournie en exercice.

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…

On se retrouve dans la prochaine partie !

INDIQUER QUE CE CHAPITRE N'EST PAS TERMINÉ

RÉALISEZ UNE APPLICATION QUIZ : DÉVELOPPEZ VOTRE PREMIÈRE


 
CONFIGURABLE ET EXTENSIBLE APPLICATION SYMFONY

Le professeur
Mickaël Andrieu
Consultant et Formateur Web / Data

OPENCLASSROOMS

OPPORTUNITÉS

AIDE

POUR LES ENTREPRISES

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

Vous aimerez peut-être aussi