Servidor VarDumper Adicionado no Symfony 4.1

Andréia Bohner
2 min readMar 27, 2018

--

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

--

--