Todas as linguagens dispõem de várias formas de efectuar debug de código, o PHP não foge a regra. Ao longo dos últimos 10 anos, que dediquei ao PHP, experimentei algumas técnicas, algumas com muito bons resultados outras nem por isso.
Antes de qualquer acto, deverá ser efectuada uma validação da conformidade da syntax do código, isto se não queremos ficar com o resultado do desenvolvimento cheio de erros "Syntax Error". Muitos editores fazem esta validação, de modo visual, no entanto eu sugiro que o PHP CLI (Command Line Interface) seja corrido.
Exemplo: php -l file.php
Um dos erros muito comuns no desenvolvimento em qualquer linguagem interpretada é não usarmos a totalidade das vantagens da análise de logs. No PHP para um uso mais eficiente do relatório de erros e avisos, a propriedade error_reporting, no ficheiro php.ini, deverá ser definida como E_ALL.
error_reporting = E_ALL
Para um desenvolvimento mais efectivo, desligo sempre a visualização de erros no "screen", preferindo a análise dos mesmos no ficheiro de log. Para isso defino o display_errors como desligado.
display_errors = Off
Necessitamos ainda, de indicar ao PHP para efectuar o log dos erros para um ficheiro e indicar qual o caminho para o ficheiro onde desejamos gravar as mensagens de erro.
log_errors = On ; Desejamos gravar as mensagens em ficheiro
error_log = "/var/logs/php.log" ; Caminho para o ficheiro onde desejamos gravar as mensagens
Depois basta abrir uma consola onde estou a monitorizar toda a actividade do ficheiro de log do php.
tail -f /var/logs/php.log
A extensão XDebug para PHP permite efectuar profilling e debugging de uma forma muito simples, com funções como xdebug_memory_usage( ), que nos permite analisar o uso da memória do script currente, que também tem correspondente na versão nativa do php, memory_get_usage(), a função xdebug_call_class(), que permite saber em que class foi o método invocado, entre muitas outras.
A extensão XDebug proporciona uma melhoria na visualização de mensagens de erro, podendo-se observar o caminho de execução do script até ao momento em que aconteceu o erro, por exemplo.
Mais informações sobre a extensão na página da mesma.
Very interesting to read. I enjoyed well while reading. I will recommend my friends to read this one for sure.