Como usar o Profiler, ferramenta de debug nativa do CodeIgniter

Se você é desenvolvedor web então com certeza conhece as ferramentas de debug existentes nos navegadores.

No Google Chrome se você apertar F12, CTRL+SHIF+I ou botão direito em cima de algum elemento e clicar em Inspecionar Elemento, você terá acesso à ferramente de debug do navegador, que lhe permite fazer várias análises. Desde alterar o CSS, código HTML, brincar com o JavaScript do site, medir tempo de carregamento, etc, além de muitas outras coisas.

No Firefox também existe tal ferramenta igualmente útil.

Porém, como são ferramentas que rodam do lado do cliente, ou seja, no navegador, você não consegue debugar com tanta eficiência assim seu código. Por exemplo: a partir destas ferramentas você não consegue visualizar uma query recém executada no seu código.

Para contornar este problema, o CodeIgniter nos apresenta uma ferramenta nativa de debug, chamada Profiler.

Ela tem vários usos, como por exemplo: simples testes que envolvem tempo de carregamento da página, queries que você rodou, checar o conteúdo do $_POST etc.

Para habilitar esta ferramenta é bem simples. Dentro de qualquer controller, acrescente a seguinte linha:

Se quiser desabilitar, basta mudar o parâmetro TRUE para FALSE, assim:

O legal é que você não precisa carregar nenhuma biblioteca previamente para usar esta ferramenta, pois ela faz parte da biblioteca Output do CodeIgniter que é carregada por padrão.

Feito isto, quando você chamar o controller respectivo, você terá na parte de baixo da sua view uma tabela colorida com uma série de informações que podem lhe ajudar a encontrar algum problema no seu código.

Veja o print abaixo, clique para ficar maior:

print_profiler_ci

 

Utilizei o Mini-crud que fiz neste post para o exemplo.

No controller Cadastro.php coloquei a linha que habilita o profiler imediatamente antes da linha que carrega a view que informa que os dados foram gravados com sucesso.

Assim, eu consigo capturar tudo o que foi postado na página.

Repare que o profiler mostra o tempo de carregamento da página, qual o endereço, qual o método e classe chamados, e o principal, a query executada, inclusive com o conteúdo de cada campo.

Assim fica fácil descobrir se todos os valores estão sendo postados a partir do seu formulário para ter certeza que eles estão chegando no seu método.

Se você quiser ver eu explicando com mais detalhes como que usa o profiler, veja o vídeo que fiz exatamente sobre este assunto.

Clique na imagem abaixo para ir direto pro vídeo, e não se esqueça de se inscrever no canal em seguida.

 

vejanoyoutube

 

 

Abraços e até o próximo post.

Fábio

 

 

 

Fábio S. Reszko

Sou Programador PHP desde 2006 e eu acredito sinceramente que programar usando um Framework PHP é a solução para os problemas de códigos desorganizados, difíceis de entender e de dar manutenção no futuro. Se você também acredita nisto, então fique à vontade em explorar meu blog.

  • Olá Fábio,

    Caso o programador use jquery para realizar a transação, ainda assim é possível enxergar as variáveis?

    Abraço,

  • Olá Ligiano

    Neste caso, provavelmente você verá suas variáveis na área de Cabeçalhos HTTP.

    Fabio

  • Nunca, nunca mesmo deixe em execução para o usuário (não esqueça, na realidade), até porque mostra a Encryption Key na íntegra!
    Só em produção.

  • Marcelo Silva

    Olá fábio, tudo tranquilo? Espero que sim.

    Pelos meus testes aqui, o profiler só verifica operações de query no Banco Default. Existe alguma maneira de fazer ele identificar querys em bancos secundários?

  • roberto joao rosa jr

    Nossa, muito útil, obrigado !

  • Emérito Neto

    Excelente vários anos de CI nunca tinha me atentado a isso, Obrigado por contribuir com meus aprendizado. abraços