March 26, 2018 Javier Eguiluz

The VarDumper component provides a dump() function as a more advanced alternative to PHP's var_dump() function. The problem of dumping data from your application is that, for example, when working on an API you might end up in the console with a mix of your response data and the dumped data:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class ApiController extends AbstractController { /** * @Route("/hello") */ public function hello ( Request $request , UserInterface $user ) { dump ( $request -> attributes , $user ); return JsonResponse :: create ([ 'status' => 'OK' , 'message' => "Hello { $user -> getUsername () } " ]); } }

In this case, the console output is confusing:

In order to solve these issues, in Symfony 4.1 we've introduced a dedicated server to collect the dumped data. In practice you just need to run the new server:dump command and whenever you call to dump() , the dumped data is sent to a single centralized server that outputs it to the console or to a file in HTML format:

1 2 3 4 5 6 # displays the dumped data in the console: $ ./bin/console server:dump [OK] Server listening on tcp://0.0.0.0:9912 # stores the dumped data in a file using the HTML format: $ ./bin/console server:dump --format = html > dump.html

This is how the server looks when dumping contents to the console (which includes context information such as the source file, the HTTP request, the executed command, etc.):

And this is how it looks when using the HTML format:

When using it inside a Symfony application, the new server is configured in the debug package: