Activer le profiler Symfony conditionnellement

Publié le 12/04/2020 • Mis à jour le 12/04/2020


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code nous allons voir comment activer ou désactiver le profiler Symfony. Je lisais la documentation (voir le lien "lien la doc") et je me suis rendu compte que ça ne fonctionnait pas. J'ai essayé d'ajouter cet alias comme indiqué, cela marche avec l'environnement de développement mais pas avec celui de production. Donc, à la place d'ajouter cet alias, j'ai ajouté un paramètre nommé conditionnel dans mon fichier services.yaml :
$profiler: '@?profiler'
Ce paramètre est situé dans la section services > _defaults > bind. Maintenant, ça fonctionne correctement pour les deux environnements. J'ai créé une issue sur le tracker Symfony pour que la documentation puisse être corrigée (voir le lien "plus sur le web"). Je trouve cette solution vraiment élégante 😊.


     * @Route("/phpinfo", name="phpinfo")
     */
    public function phpInfoAction(Request $request, ?Profiler $profiler): Response
    {
        if ($profiler !== null) {
            $profiler->disable(); // or ->enable()
        }
        ob_start();
        phpinfo();
        $str = ob_get_contents();
        ob_get_clean();
        $ipInfo = sprintf('<h1>IP as seen by Symfony: %s</h1>', $request->getClientIp() ?? '');
        $str = str_replace('<body>', '<body>'.$ipInfo, (string) $str);

 Plus sur Stackoverflow   Lire la doc  Plus sur le web  Snippet aléatoire