Using the PHP compact function with the Symfony debug functions
Published on 2022-06-30 • Modified on 2022-06-30
This snippet shows how to use the PHP compact function with the Symfony debug functions. Symfony dump()
and dd()
functions are great to debug. They allow passing an arbitrary number of variables. That's cool, but if you have too many variables, it can be not very clear, and you have to return to the original call to see the exact order. We can use the compact()
function to see each variable's name and its associated value.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
use Symfony\Component\HttpFoundation\Request;
/**
* I am using a PHP trait to isolate each snippet in a file.
* This code should be called from a Symfony controller extending AbstractController (as of Symfony 4.2)
* or Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Services are injected in the main controller constructor.
*/
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! 😁
}
}
Run this snippet Read the doc Random snippet
Call to action
Did you like this post? You can help me back in several ways: (use the "reply" link on the right to comment or to contact me )
- Report any error/typo.
- Report something that could be improved.
- Like and repost!
- Follow me on Bluesky 🦋
- Subscribe to the RSS feed.
- Click on the More on Stackoverflow buttons to make me win "Announcer" badges 🏅.
Thank you for reading! And see you soon on Strangebuzz! 😉
