Xdebug: Seus problemas acabaram!

19
Seus problemas acabaram!

description

Você leva horas, dias para encontrar um bug? Não conhece o framework que trabalha ou leva dias encontrando como implementar algo? Seus problemas acabaram! Aprenda a debugar suas aplicações com Xdebug!

Transcript of Xdebug: Seus problemas acabaram!

Page 1: Xdebug: Seus problemas acabaram!

Seus problemas acabaram!

Page 2: Xdebug: Seus problemas acabaram!

!=

Por uma vida mais saudável

Page 3: Xdebug: Seus problemas acabaram!

O Xdebug é uma extensão que te ajuda a depurar seus scripts fornecendo uma

grande quantidade de informações valiosas.

Page 4: Xdebug: Seus problemas acabaram!

Falaremos sobre:

● Instalação● Variáveis amigáveis● Xdebug na linha de comando● Removendo pogs● Depurando em tempo real● profiling

Page 5: Xdebug: Seus problemas acabaram!

sudo apt-get install php5 php5-dev gitgit clone git://github.com/derickr/xdebug.gitcd xdebugphpize./configure --enable-xdebugmakesudo make installsudo service apache2 restart

Instalação:

Page 6: Xdebug: Seus problemas acabaram!

Como configurar:xdebug.default_enable=onxdebug.overload_var_dump = 0

No php.ini:html_errors=On

Variáveis bonitinhas:

Também funciona no CLI:

xdebug.cli_color=1

Page 7: Xdebug: Seus problemas acabaram!

O PHP oculta erros com o operador @

POG do desespero

OPS DO DESESPERO: USE O MANUAL!!!http://php.net/manual/en/language.operators.errorcontrol.phphttp://xdebug.org/docs/stack_trace

E o Xdebug re-exibe:xdebug.scream=1 # ignora o @

xdebug.file_link_format=gvim://%f@%1

xdebug.file_link_format=txmt://open/?url=file://%f&line=1

xdebug.file_link_format=???://%f?%1

Page 8: Xdebug: Seus problemas acabaram!

Imprimindo variáveis amigáveis

<?phpini_set( 'xdebug.var_display_max_data', 25 );ini_set( 'xdebug.var_display_max_children', 32 );ini_set( 'xdebug.var_display_max_depth', 4 );

OPS DO DESESPERO:USE O MANUAL!!!http://xdebug.org/docs/display

Page 9: Xdebug: Seus problemas acabaram!

Exemplo de funções:Gravando headers<?phpsession_start();setcookie( 'key', 'value', time() + 86400 );header( "Status: 403" );var_dump( xdebug_get_headers() );

OPS DO DESESPERO:USE O MANUAL!!!http://xdebug.org/docs/display

Page 10: Xdebug: Seus problemas acabaram!

Depuração em tempo real: kill bugs

Page 11: Xdebug: Seus problemas acabaram!

Depuração em tempo real: kill bugs

xdebug.remote_enable=onxdebug.remote_autostart=onxdebug.remote_port=9000

Ou, use TDD – PHP Unit

Page 12: Xdebug: Seus problemas acabaram!

Clients:

● Eclipse● Netbeans● Vi● Sublime● Notepad++● M$ Visual Studio● ...

DESESPERO - RTFM:http://pt.wikipedia.org/wiki/RTFMhttp://xdebug.org/docs/remote#clients

Page 13: Xdebug: Seus problemas acabaram!

Profiling

xdebug.profiler_enable=1 ; enable profilerxdebug.profiler_output_name=cachegrind.out.%u.%s.%R

● Analisar quantidade de chamadas● Tempo total por função● Partes do código mais lentas● Descubra onde otimizar

output_name

Page 14: Xdebug: Seus problemas acabaram!

Profiling

● Webgrind● KcacheGrind● WinCacheGrind● …..?

Page 15: Xdebug: Seus problemas acabaram!

Profiling

Mão na massa

Page 16: Xdebug: Seus problemas acabaram!

Contribua com o manual

Como?Procure o Klaus nos corredores!!

● Conhecer o PHP mais a fundo● Documentação em inglês● Tradução da documentação para o português

Page 17: Xdebug: Seus problemas acabaram!

O culpado:http://derickrethans.nl/

Page 18: Xdebug: Seus problemas acabaram!

E viveram felizes para sempre

FIM

Page 19: Xdebug: Seus problemas acabaram!

<?phpfunction romans10_9(){

if($jesus == 'Lord')$you = 'saved';

else$you = 'lost';

return $you;}?>

<?phpfunction romans10_9(){

if($jesus == 'Lord')$you = 'saved';

else$you = 'lost';

return $you;}?>

<?phpfunction romans10_9(){

if($jesus == 'Lord')$you = 'saved';

else$you = 'lost';

return $you;}?>

<?phpfunction romans10_9(){

if($jesus == 'Lord')$you = 'saved';

else$you = 'lost';

return $you;}?>

<?phpfunction romans10_9(){

if($jesus == 'Lord')$you = 'saved';

else$you = 'lost';

return $you;}?>

<?phpfunction romans10_9(){

if($jesus == 'Lord')$you = 'saved';

else$you = 'lost';

return $you;}?>

<?phpecho "Vitor Mattos

http://www.slideshare.net/[email protected]@agregati.com.br";?>

Links - Contato