Servidor VarDumper Adicionado no Symfony 4.1
O componente VarDumper fornece uma função dump()
como uma alternativa mais avançada à função var_dump()
do PHP. O problema de fazer o dump de dados na sua aplicação é que, por exemplo, ao trabalhar em uma API, você pode acabar com uma combinação dos seus dados de resposta e os dados de dump no console:
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()}"
]);
}
}
Nesse caso, a saída do console é confusa:
Para resolver esses problemas, foi adicionado um servidor dedicado para coletar os dados de dump no Symfony 4.1. Na prática, só é necessário executar o novo comando server:dump
e sempre que chamar dump()
, os dados de dump são enviados para um único servidor centralizado que retorna a saída para o console ou para um arquivo no formato HTML:
# 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
É assim que o servidor parece ao fazer o dump do conteúdo para o console (que inclui informações de contexto como o arquivo de origem, a requisição HTTP, o comando executado, etc.):
E é assim que parece ao usar o formato HTML:
Ao usá-lo dentro de uma aplicação Symfony, o novo servidor é configurado no pacote debug
:
# config/packages/dev/debug.yaml
debug:
dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
Tradução de: New in Symfony 4.1: VarDumper server