Depurando Aplicacoes PHP

3,613 views

Published on

Apresentação feita no I Encontro PHP e Java que aconteceu dia 1 de Novembro de 2008 em Iguatu

Published in: Technology
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total views
3,613
On SlideShare
0
From Embeds
0
Number of Embeds
129
Actions
Shares
0
Downloads
103
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide

Depurando Aplicacoes PHP

  1. 1. Depurando Aplicações PHP Jefferson Jean Martins Girão
  2. 2. Depurando Aplicações PHP O termo “bug”
  3. 3. Depurando Aplicações PHP O que entendemos por depuração? <ul><li>Resolução de problemas (bugs) </li></ul><ul><ul><li>Erros Sintáticos / de Interpretação </li></ul></ul><ul><ul><li>Erros Semânticos </li></ul></ul><ul><ul><li>Erros Lógicos </li></ul></ul><ul><ul><li>Avisos e Notificações </li></ul></ul><ul><ul><li>Baixo desempenho </li></ul></ul><ul><li>Ferramentas </li></ul><ul><ul><li>Mensagens de erro do PHP </li></ul></ul><ul><ul><li>Recursos do Eclipse PDT </li></ul></ul><ul><ul><li>Instruções de impressão </li></ul></ul><ul><ul><li>XDebug </li></ul></ul><ul><ul><li>Firebug + FirePHP </li></ul></ul>
  4. 4. Depurando Aplicações PHP Exibição de erros do PHP <ul><li>No php.ini </li></ul><ul><ul><li>display_errors = On </li></ul></ul><ul><ul><li>Exibindo Erros </li></ul></ul><ul><ul><li>error_reporting = E_ALL </li></ul></ul><ul><ul><li>Que tipos de erros serão reportados </li></ul></ul><ul><li>Pegadinha </li></ul><ul><ul><li>Utilização do operador de supressão @ </li></ul></ul>
  5. 5. http://www.xdebug.org/ Depurando Aplicações PHP O que é o XDebug? <ul><li>Uma extensão para o PHP </li></ul><ul><li>Multiplataforma </li></ul><ul><li>Atualmente na versão 2 </li></ul><ul><li>Criada pelo Derick Rethans (Colaborador chave no desenvolvimento do PHP) </li></ul><ul><li>Com o objetivo de prover informações para depuração e otimização de aplicações </li></ul>
  6. 6. Depurando Aplicações PHP Principais recursos do XDebug <ul><li>Melhorias nas mensagens de erro do PHP </li></ul><ul><li>Melhorias na saída do var_dump() </li></ul><ul><li>Proteção contra recursões infinitas </li></ul><ul><li>Depuração remota (Debugging) </li></ul><ul><li>Acompanhamento do fluxo da aplicação (Tracing) </li></ul><ul><li>Informações sobre consumo de recursos (Profilling) </li></ul><ul><li>Cobertura de código (Code Coverage) </li></ul>
  7. 7. Depurando Aplicações PHP Instalação <ul><li>Através do código fonte </li></ul><ul><li>Através de binários </li></ul>
  8. 8. Depurando Aplicações PHP Instalação <ul><li>Configuração do php.ini </li></ul><ul><ul><li>No Windows: </li></ul></ul><ul><ul><li>zend_extension_ts=&quot;C:DiretoriodeextensoesdoPHPphp_xdebug.dll&quot; </li></ul></ul><ul><ul><li>No Linux: </li></ul></ul><ul><ul><li>zend_extension=&quot;/diretorio/de/extensoes/do/PHP/xdebug.so&quot; </li></ul></ul><ul><li>Verificando através do phpinfo(); </li></ul>
  9. 9. Depurando Aplicações PHP Configurações comuns do XDebug <ul><li>No php.ini </li></ul><ul><ul><li>xdebug.var_display_max_data= 512 </li></ul></ul><ul><ul><ul><li>Tamanho máximo de exibição de uma variável, além disso truncada </li></ul></ul></ul><ul><ul><li>xdebug.var_display_max_children = 128 </li></ul></ul><ul><ul><ul><li>Tamanho máximo de elementos de um array ou objeto a ser exibido </li></ul></ul></ul><ul><ul><li>xdebug.show_local_vars=On </li></ul></ul><ul><ul><ul><li>Exibe variáveis locais </li></ul></ul></ul><ul><ul><li>xdebug.dump.GET=* </li></ul></ul><ul><ul><ul><li>Mostra o conteúdo da superglobal GET (funciona para GET, POST, SERVER, COOKIE, FILES, REQUEST e SESSION) </li></ul></ul></ul><ul><ul><li>xdebug.max_nesting_level=4 </li></ul></ul><ul><ul><ul><li>Define limite de recursão </li></ul></ul></ul>
  10. 10. Depurando Aplicações PHP Debugging <ul><li>No php.ini </li></ul><ul><ul><li>; debug remoto </li></ul></ul><ul><ul><li>xdebug.remote_enable=On </li></ul></ul><ul><ul><li>xdebug.remote_host=&quot;localhost&quot; </li></ul></ul><ul><ul><li>xdebug.remote_port=9000 </li></ul></ul><ul><ul><li>xdebug.remote_handler=&quot;dbgp&quot; </li></ul></ul><ul><li>No Eclipse PDT </li></ul><ul><ul><li>run->open debug dialog...->PHP Web Page->New </li></ul></ul><ul><ul><li>Defina o Server Debugger para Xdebug </li></ul></ul><ul><ul><li>Escolha um arquivo por onde iniciar o debug </li></ul></ul><ul><ul><li>Verifique se a URL autogerada está correta </li></ul></ul><ul><ul><li>Apply->Debug </li></ul></ul>
  11. 11. Depurando Aplicações PHP Tracing <ul><li>No php.ini </li></ul><ul><ul><li>xdebug.auto_trace=On </li></ul></ul><ul><ul><li>xdebug.trace_output_dir=D:Temp </li></ul></ul><ul><li>Fazendo tracing de uma parte específica do código </li></ul>
  12. 12. Depurando Aplicações PHP Profilling <ul><li>No php.ini </li></ul><ul><ul><li>xdebug.profiler_output_dir=&quot;D:Temp&quot; </li></ul></ul><ul><ul><li>xdebug.profiler_append=On </li></ul></ul><ul><ul><li>xdebug.profiler_enable_trigger=On </li></ul></ul><ul><li>O KCacheGrind </li></ul>
  13. 13. Depurando Aplicações PHP O que é o FirePHP? <ul><li>É um plugin para um plugin (dã) do Firefox chamado Firebug </li></ul><ul><li>Permite que Scripts PHP conversem com o painel do Firebug </li></ul><ul><li>Todos os dados são enviados via response headers sem interferir no conteúdo da página </li></ul><ul><li>Ideal para depuração de aplicações AJAX onde respostas JSON e XML simples são necessárias </li></ul>
  14. 14. www.firephp.org Depurando Aplicações PHP Instalação <ul><li>O FireBug </li></ul><ul><li>O FirePHP </li></ul><ul><li>As Bibliotecas </li></ul><ul><ul><li>API Procedural </li></ul></ul><ul><ul><li>API Orientada a Objeto </li></ul></ul>
  15. 15. Depurando Aplicações PHP Release <ul><li>Variável global definindo se está em modo de depuração ou não </li></ul><ul><li>if(DEBUG) </li></ul><ul><li>$firephp->fb(&quot;Debugando...&quot;); </li></ul><ul><li>Tags de debug + PHPReleaser </li></ul><ul><li><?php </li></ul><ul><li>#DEBUG </li></ul><ul><li>require_once(&quot;firephp.class&quot;); </li></ul><ul><li>$firephp = FirePHP::getInstance(true); </li></ul><ul><li>#DEBUG_END </li></ul><ul><li>//[CODIGO...] </li></ul><ul><li>#DEBUG </li></ul><ul><li>$firephp->fb($ob); </li></ul><ul><li>#DEBUG_END </li></ul><ul><li>?> </li></ul><ul><li>http://yensdesign.com/tutorials/phpdebug/phpreleaser.rar </li></ul>
  16. 16. Obrigado! [email_address] Depurando Aplicações PHP Referências <ul><li>http://www.xdebug.org/docs/ </li></ul><ul><li>http://www.firephp.org/HQ/Use.html </li></ul><ul><li>http://devzone.zend.com/article/2803-Introducing-xdebug </li></ul><ul><li>http://www.onlamp.com/pub/a/php/2004/08/12/DebuggingPHP.html </li></ul><ul><li>http://mikebernat.com/blog/My_PHP_Best_Practices </li></ul>

×