• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Depurando Aplicacoes PHP com XDebug e FirePHP II
 

Depurando Aplicacoes PHP com XDebug e FirePHP II

on

  • 6,604 views

 

Statistics

Views

Total Views
6,604
Views on SlideShare
6,580
Embed Views
24

Actions

Likes
3
Downloads
37
Comments
0

2 Embeds 24

http://www.slideshare.net 21
http://coderwall.com 3

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Depurando Aplicacoes PHP com XDebug e FirePHP II Depurando Aplicacoes PHP com XDebug e FirePHP II Presentation Transcript

    • Depurando Aplicações PHP com Xdebug e FirePHP Jefferson Girão http://jefferson.eti.br [email_address]
    • Murphy, o culpado de tudo. Coronel John Paul Stapp
    • As Leis
      • Primeira lei - Se uma coisa pode sair errado, sairá.
      • Se tudo parece estar indo bem, é porque você não olhou direito.
      • A natureza sempre está a favor da falha oculta.
      "É de conhecimento geral entre os analistas de software que nunca se elimina o último bug de um programa. Os bugs são aceitos como uma triste realidade. Esperamos eliminá-los todos, um por um, mas nunca conseguiremos nos livrar deles." DeMarco, Tom , Editora Campus, 91
    • Os Erros
      • Erros nem sempre são óbvios;
      • Erros diferentes podem ter a mesma manifestação;
      • Saber que um programa não esta correto não necessariamente é saber como corrigir o erro.
    • Bug? Almirante Grace Hopper
    • O que fazer? Depurar, testar!!
      • “ Depois eu escrevo o plano de testes...”
      • “ Vamos deixar os testes para a próxima fase...”
      • “ Na minha máquina funcionou...”
      • “ Temos que entregar o produto na semana que vem...”
    • O que entendemos por depuração?
      • Resolução de problemas (“bugs”):
        • Erros Sintáticos / de Interpretação
        • Erros Semânticos
        • Erros Lógicos
        • Avisos e Notificações
        • Problemas de Desempenho
    • Erros Sintáticos Erro sintático acontece quando você se expressa de uma forma não válida para o compilador/interpretador. Quando você não segue a sintaxe da linguagem. Prof. Girafales após cometer um erro sintático: "Eu jamais me engano. Só me enganei uma vez: quando acreditei estar enganado!"
    • Exemplo de Erro Sintático É um erro fatal!!! Bizu Atenção no destaque de sintaxe da IDE e olhe sempre as linhas anteriores à indicada pela mensagem de erro do PHP.
    • Cadê os Erros? No php.ini: display_errors = On error_reporting = E_ALL
    • Erros Semânticos Erros de semântica envolvem códigos técnicamente corretos que contêm problemas com o significado do código. Pica-pau sobre os erros semânticos "Yo no lo conoço señor "
    • Exemplo de Erro Semântico É um erro fatal!!! Bizu Bizu: verifique se as inclusões foram feitas corretamente e desconfie quando o recurso de autocomplete da IDE não funcionar
    • Avisos e Notificações Avisos/Notificações podem ser tratados pelo PHP, mas provavelmente não é sobre algo que você não gostaria no seu código Dirty Harry avisando com sua magnum: "Do you feel lucky, punk? "
    • Exemplo de Aviso/Notificação Bizu Configure o PHP para exibir tudo no php.ini: error_reporting = E_ALL;
    • Erros Lógicos Simplesmente seu programa não faz o que deveria fazer. Chapolim se deparando com um erro lógico: "Pepe, já tirei a vela. "
    • Como vamos resolver?
      • Ferramentas
        • Mensagens de erro do PHP
        • Recursos do Eclipse PDT
        • Instruções de impressão
        • Xdebug
        • Firebug + FirePHP
    • O que é o XDebug?
        • Não é um sanduíche
        • É uma extensão para PHP
        • Multiplataforma
        • Atualmente na versão 2
        • Criada pelo Derick Rethans (Colaborador chave do PHP)
        • Com a finalidade de prover informações para depuração
          • e otimização de aplicações
      www.xdebug.org
    • Principais recursos do XDebug
        • Melhorias nas mensagens de erro do PHP
        • Melhorias na saída do var_dump()
        • Proteção contra recursões infinitas
        • Depuração remota (Debugging)
        • Acompanhamento do fluxo da aplicação (Tracing)
        • Informações sobre consumo de recursos (Profilling)
        • Cobertura de código (Code Coverage)
    • Instalação do XDebug
        • Através do código fonte
        • Através de binários
        • Através do repositório PECL
    • Instalação do XDebug
        • Configuração do PHP.INI
        • No Windows:
        • zend_extension_ts="C:DiretoriodeextensoesdoPHPphp_xdebug.dll"
        • No Linux:
        • zend_extension="/diretorio/de/extensoes/do/PHP/xdebug.so"
        • Verificando a Instalação através do phpinfo();
    • Configurações comuns
      • No php.ini
        • xdebug.show_local_vars=On
          • Exibe variáveis locais
        • xdebug.dump.GET=*
          • Mostra o conteúdo da superglobal GET
          • (funciona para GET, POST, SERVER, COOKIE, ...)
        • xdebug.max_nesting_level=4
        • Define limite de recursão
    • Debugging
      • 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
    • Tracing V F Comando1 X > 3 Comando4 - Erro Comando2 Comando3
    • Tracing
      • No php.ini
        • xdebug.auto_trace=On
        • xdebug.trace_output_dir=D:Temp
      • Fazendo tracing de uma parte específica do código
    • Profilling
        • No php.ini
        • xdebug.profiler_output_dir="D:Temp"
        • xdebug.profiler_append=On
        • xdebug.profiler_enable_trigger=On
        • O KCacheGrind
    • FirePHP
        • É um plugin para um plugin (dã) do Firefox chamado Firebug
        • Permite que Scripts PHP converse com o painel do Firebug
        • Todos os dados são enviados via response headers sem
        • interferir no conteúdo da página
        • Ideal para depuração de aplicações AJAX onde respostas JSON
          • e XML simples são necessárias
    • FirePHP
        • Instalação
      • O FireBug
      • O FirePHP
      • As Bibliotecas
        • API Procedural
        • API Orientada a Objeto
      www.firephp.org
    • Referências
        • Instalação
      • http://www.xdebug.org/docs/
      • http://www.firephp.org/HQ/Use.html
      • http://devzone.zend.com/article/2803-Introducing-xdebug
      • http://www.onlamp.com/public/php/2004/08/12/DebuggingPHP.htm
      • http://mikebernat.com/blog/My_PHP_Best_Pratices
      Obrigado! Dúvidas?