Depurando Aplicacoes PHP

Embed Size (px)

Citation preview

Apresentao do PowerPoint

Depurando Aplicaes PHPJefferson Jean Martins Giro

Depurando Aplicaes PHPO termo bug

Depurando Aplicaes PHPO que entendemos por depurao? Resoluo de problemas (bugs)

Erros Sintticos / de Interpretao

Erros Semnticos

Erros Lgicos

Avisos e Notificaes

Baixo desempenho

Ferramentas

Mensagens de erro do PHP

Recursos do Eclipse PDT

Instrues de impresso

XDebug

Firebug + FirePHP

Depurando Aplicaes PHPExibio de erros do PHP No php.ini

display_errors = On

Exibindo Erros

error_reporting = E_ALL

Que tipos de erros sero reportados

Pegadinha

Utilizao do operador de supresso @

Depurando Aplicaes PHPO que o XDebug? Uma extenso para o PHP

Multiplataforma

Atualmente na verso 2

Criada pelo Derick Rethans (Colaborador chave no desenvolvimento do PHP)

Com o objetivo de prover informaes para depurao e otimizao de aplicaes

http://www.xdebug.org/

Depurando Aplicaes PHPPrincipais recursos do XDebug Melhorias nas mensagens de erro do PHP

Melhorias na sada do var_dump()

Proteo contra recurses infinitas

Depurao remota (Debugging)

Acompanhamento do fluxo da aplicao (Tracing)

Informaes sobre consumo de recursos (Profilling)

Cobertura de cdigo (Code Coverage)

Depurando Aplicaes PHPInstalao Atravs do cdigo fonte

Atravs de binrios

Depurando Aplicaes PHPInstalao Configurao do php.ini

No Windows:

zend_extension_ts="C:\Diretorio\de\extensoes\do\PHP\php_xdebug.dll"

No Linux:

zend_extension="/diretorio/de/extensoes/do/PHP/xdebug.so"

Verificando atravs do phpinfo();

Depurando Aplicaes PHPConfiguraes comuns do XDebug No php.ini

xdebug.var_display_max_data= 512

Tamanho mximo de exibio de uma varivel, alm disso truncada

xdebug.var_display_max_children = 128

Tamanho mximo de elementos de um array ou objeto a ser exibido

xdebug.show_local_vars=On

Exibe variveis locais

xdebug.dump.GET=*

Mostra o contedo da superglobal GET (funciona para GET, POST, SERVER, COOKIE, FILES, REQUEST e SESSION)

xdebug.max_nesting_level=4

Define limite de recurso

Depurando Aplicaes PHPDebugging No php.ini

; debug remoto

xdebug.remote_enable=On

xdebug.remote_host="localhost"

xdebug.remote_port=9000

xdebug.remote_handler="dbgp"

No Eclipse PDT

run->open debug dialog...->PHP Web Page->New

Defina o Server Debugger para Xdebug

Escolha um arquivo por onde iniciar o debug

Verifique se a URL autogerada est correta

Apply->Debug

Depurando Aplicaes PHPTracing No php.ini

xdebug.auto_trace=On

xdebug.trace_output_dir=D:\Temp

Fazendo tracing de uma parte especfica do cdigo

Depurando Aplicaes PHPProfilling No php.ini

xdebug.profiler_output_dir="D:\Temp"

xdebug.profiler_append=On

xdebug.profiler_enable_trigger=On

O KCacheGrind

Depurando Aplicaes PHPO que o FirePHP? um plugin para um plugin (d) do Firefox chamado Firebug

Permite que Scripts PHP conversem com o painel do Firebug

Todos os dados so enviados via response headers sem interferir no contedo da pgina

Ideal para depurao de aplicaes AJAX onde respostas JSON e XML simples so necessrias

Depurando Aplicaes PHPInstalao O FireBug

O FirePHP

As Bibliotecas

API Procedural

API Orientada a Objeto

www.firephp.org

Depurando Aplicaes PHPRelease Varivel global definindo se est em modo de depurao ou no

if(DEBUG)

$firephp->fb("Debugando...");

Tags de debug + PHPReleaser

http://yensdesign.com/tutorials/phpdebug/phpreleaser.rar

Depurando Aplicaes PHPReferncias http://www.xdebug.org/docs/

http://www.firephp.org/HQ/Use.html

http://devzone.zend.com/article/2803-Introducing-xdebug

http://www.onlamp.com/pub/a/php/2004/08/12/DebuggingPHP.html

http://mikebernat.com/blog/My_PHP_Best_Practices

Obrigado!

[email protected]