Com o xdebug, é possível formatar a saída, ao utilizar a função var_dump do PHP. Esse é um recurso do Xdebug em conjunto com o PHP, que fornece uma visualização de variáveis do PHP – seja quais forem: $_SERVER, $_POST, $_GET, $_ENV, $minhavariavel, $meuObjeto…. – com uma formatação em HTML.

A grande vantagem disso é a facilidade de visualização das variáveis, trace exceções, mensagens de NOTICE, WARNING, PARSE ERROR, DEPRECATED, etc.

Muitas pessoas podem ter sofrido a mesma dificuldade que tive, ao habilitar essa funcionalidade. Apesar de as informações do PHP (phpinfo) mostrarem que a biblioteca está carregada, a saída do var_dump não vinha formatada. Após vários testes, seguir várias explicações, entre elas, uma sugeria definir o parâmetro “xdebug.trace_format=1“. Restartando o servidor web, as variáveis continuavam no formato padrão do PHP.

Inicialmente, eu pensei que o problema seria porque estou trabalhando com o Lighttpd e o PHP configurado para trabalhar em modo CGI (FastCGI). Isso ocorreu pois eu utilizava PHP como módulo do Apache e esse era meu servidor web. Ao migrar pra o Lighttpd, instalei o pacote php5-cgi (Debian/Ubuntu) e configurei as diretivas necessárias pra funcionar com aquele.

Felizmente, não há diferença, para essa funcionalidade, utilizar o PHP em modo FastCGI ou módulo do servidor Web. Mesmo se esse mesmo PHP fosse utilizado com o Apache em modo FastCGI, o problema persistiria, ou seja, o problema também não é o Lighttpd.

Quando instalamos o pacote php5-cgi, pelo menos nas distribuições Debian-like, as diretivas de configuração pra trabalhar nesse modo são dispostas em uma pasta separada, geralmente em “/etc/php5/cgi”. Na verdade, além de habilitar a extensão Xdebug, é necessário mudar uma diretiva do PHP, “html_errors”. Pelo menos no php.ini da opção CGI, essa estava desabilitada – html_errors = Off. Quando essa diretiva está Off/0 (zero) / false, o Xdebug não formata variáveis, trace de exceções e reporting de erros.

Portanto, se você está com esse problema, além de habilitar a extensão Xdebug (Veja o Post “Instalando o Xdebug no Debian/Ubuntu”), é necessário habilitar a opção html_errors.