Utiliser la fonction PHP compact avec les fonctions de debug Symfony

Publié le 30/06/2022 • Actualisé le 30/06/2022


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 voyons comment utiliser la fonction PHP compact avec les fonctions de débogage Symfony. Les fonctions dump() et dd() de Symfony sont vraiment d'une grande aide pour déboguer. Elles permettent de passer un nombre arbitraire de variables. C'est très bien, mais si l'on passe trop de variables, ça peut être difficile de se souvenir quelle sortie correspond à quelle variable et on doit retourner à l'appel pour vérifier l'ordre exact. On peut utiliser la fonction compact() afin de voir le nom de chaque variable et la valeur qui lui est associée.


<?php

declare(strict_types=1);

namespace App\Controller\Snippet;

use Symfony\Component\HttpFoundation\Request;

/**
 * J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
 * Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
 * ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
 * Les services sont injectés dans le constructeur du contrôleur principal.
 */
trait Snippet208Trait
{
    public function snippet208(Request $request): void
    {
        $clientIp = $request->getClientIp();
        $locale = $request->getLocale();
        dump($clientIp, $locale);
        dump(compact('clientIp', 'locale'));

        // in dev mode, the debug is added in the profiler. It looks like this:
        $output = <<<OUTPUT
Snippet208Trait.php line 19
"127.0.0.1"

Snippet208Trait.php line 19
"en"

Snippet208Trait.php line 20

array:2 [▼
  "clientIp" => "127.0.0.1"
  "locale" => "en"
]
OUTPUT;

        echo $output;

        // That's it! 😁
    }
}

 Exécuter le snippet   Lire la doc  Snippet aléatoire

  Travaillez avec moi !