1001
maneiras de
debugar o
WordPress
Rudá Almeida
Imagem: macrovector
Rudá Almeida
Integrante da TI da UFRJ
Entusiasta do WordPress
Palestrante, voluntário e
co-organizador de meetups
O que é debug?
O que é debug?
“Debug (em português, depuração) é o processo de localizar e corrigir erros em
um programa de computador que impeçam a operação do sistema.
Técnicas de debugging podem incluir debug interativo, análise de controle de
fluxo, testes unitários, análise de logs, monitoramento, dumps de memória, e
profiling”.
Wikipédia (adaptado)
Debug é
diagnóstico
Debug é
uma arte
Aviso importante
Não faça
debug em
produção!
Prejuízo para:
● Performance
● Estabilidade
● Segurança
Como ativar o debug
no WordPress
Constantes nativas do WordPress
WP_DEBUG
● Ativa o modo de debug nativo do WordPress.
● Exibe todos os erros, alertas e avisos do PHP.
● Avisa sobre funções e argumentos obsoletas
(“deprecated”) do WordPress.
WP_DEBUG_DISPLAY
● Exibe (ou oculta) erros na tela.
WP_DEBUG_LOG
● Salva erros, alertas, notices e mensagens
personalizadas em um arquivo de log.
define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
define('WP_DEBUG_LOG', true);
O modo de recuperação
e a proteção contra erros
Proteção contra erros
Modo de recuperação
Modo de recuperação e proteção
contra erros
● Novidade a partir do WordPress 5.2
● Substitui a “tela branca da morte” em (alguns) erros do
PHP.
● Permite login para desativar o componente que esteja
falhando.
● Não interfere no fluxo de debug ou no registro de
entradas no arquivo de log.
● Extensível por desenvolvedores.
Técnicas e ferramentas
de debug
Inserção manual
de mensagens
Imagem: Cosmin Negoita
Inserção manual de mensagens
echo('mensagem');
● Exibe a mensagem.
die('mensagem');
● Exibe a mensagem e interrompe a execução do código.
error_log('mensagem');
error_log(print_r($array, true));
error_log(print_r($objeto, true));
● Insere uma entrada no arquivo de log.
What The
File
WordPress Template Hierarchy
What The File
Detecta quais arquivos do
tema (incluindo template-parts)
foram usados para renderizar
a página atual e exibe esta
informação em um menu
drop-down na barra de
administração.
Debug Bar
Debug Bar
Oferece informações sobre o ambiente do PHP, a
plataforma WordPress, e a página exibida.
● Extensível através de plugins.
● Desenvolvido por uma equipe de
contribuidores do core WordPress.
Pontos fracos:
● Não é atualizado há mais de um ano.
● Oferece poucas informações básicas
caso seja utilizado sem outros plugins.
● Necessário alteração no wp-config:
define('SAVEQUERIES', true);
Por padrão, informa a versão do PHP
e MySQL, uso de RAM, consultas
SQL, WP Query e objeto retornado,
request, query string e rewrite rule
utilizada.
Através de plugins, abrange também
shortcodes, constantes, post types,
ações e filtros, transients, WP cron,
dependências de CSS e JS,
requisições remotas, performance de
actions e filters, e muito mais.
Query
Monitor
Query Monitor
Painel de desenvolvimento para
WordPress extremamente versátil,
mostra informações detalhadas de
consultas ao banco, erros de PHP,
hooks e actions, requests, variáveis de
query, uso de arquivos do tema e
template parts, e muito mais.
● Ativação automática sem uso
de constante no arquivo
wp-config.
● Dezenas de opções padrão.
● Extensível através de plugins.
● Compatível com add-ons do
Debug Bar.
xdebug
xdebug
● Debug interativo passo-a-passo
○ Examina estrutura de dados, valores de variáveis, retorno de
funções e fluxo de execução do código.
○ Usado em conjunto com uma IDE que ofereça suporte (VS Code,
Sublime, NetBeans, Eclipse…)
● Adiciona rastreamento de pilha (stack tracing) a erros,
exceções, alertas e notices do PHP.
● Profiling
○ Analisa recursos utilizados por cada chamada a uma função,
ajudando a localizar gargalos de performance e visualizar a
execução do código.
xdebug profiling
xdebug profiling
Blackfire
Blackfire
Profiler
● Analisa detalhadamente o consumo de recursos: tempo
de execução, uso de CPU, RAM, I/O (disco), rede,
chamadas HTTP e consultas SQL.
● Indica funções mais “custosas” em cada métrica.
● Gera gráficos detalhados.
● Cloud-based, “as-a-service”.
● Pago (possui planos gratuitos).
Blackfire
Para saber mais
● Debugging in WordPress
● Fatal Error Recovery Mode in WordPress 5.2
● Query Monitor – The Developer Tools Panel for
WordPress
● Query Monitor – Depurar o WordPress e Melhorar o
Desempenho do Website
● xdebug documentation
Perguntas?
Obrigado!
rdlmda.me
tg.me/rdlmda
fb.com/rdlmda

1001 maneiras de debugar o WordPress

  • 1.
    1001 maneiras de debugar o WordPress RudáAlmeida Imagem: macrovector
  • 2.
    Rudá Almeida Integrante daTI da UFRJ Entusiasta do WordPress Palestrante, voluntário e co-organizador de meetups
  • 3.
    O que édebug?
  • 4.
    O que édebug? “Debug (em português, depuração) é o processo de localizar e corrigir erros em um programa de computador que impeçam a operação do sistema. Técnicas de debugging podem incluir debug interativo, análise de controle de fluxo, testes unitários, análise de logs, monitoramento, dumps de memória, e profiling”. Wikipédia (adaptado)
  • 5.
  • 6.
  • 7.
    Aviso importante Não faça debugem produção! Prejuízo para: ● Performance ● Estabilidade ● Segurança
  • 8.
    Como ativar odebug no WordPress
  • 9.
    Constantes nativas doWordPress WP_DEBUG ● Ativa o modo de debug nativo do WordPress. ● Exibe todos os erros, alertas e avisos do PHP. ● Avisa sobre funções e argumentos obsoletas (“deprecated”) do WordPress. WP_DEBUG_DISPLAY ● Exibe (ou oculta) erros na tela. WP_DEBUG_LOG ● Salva erros, alertas, notices e mensagens personalizadas em um arquivo de log. define('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0); define('WP_DEBUG_LOG', true);
  • 10.
    O modo derecuperação e a proteção contra erros
  • 11.
  • 12.
  • 13.
    Modo de recuperaçãoe proteção contra erros ● Novidade a partir do WordPress 5.2 ● Substitui a “tela branca da morte” em (alguns) erros do PHP. ● Permite login para desativar o componente que esteja falhando. ● Não interfere no fluxo de debug ou no registro de entradas no arquivo de log. ● Extensível por desenvolvedores.
  • 14.
  • 15.
  • 16.
    Inserção manual demensagens echo('mensagem'); ● Exibe a mensagem. die('mensagem'); ● Exibe a mensagem e interrompe a execução do código. error_log('mensagem'); error_log(print_r($array, true)); error_log(print_r($objeto, true)); ● Insere uma entrada no arquivo de log.
  • 17.
  • 18.
  • 19.
    What The File Detectaquais arquivos do tema (incluindo template-parts) foram usados para renderizar a página atual e exibe esta informação em um menu drop-down na barra de administração.
  • 20.
  • 21.
    Debug Bar Oferece informaçõessobre o ambiente do PHP, a plataforma WordPress, e a página exibida. ● Extensível através de plugins. ● Desenvolvido por uma equipe de contribuidores do core WordPress. Pontos fracos: ● Não é atualizado há mais de um ano. ● Oferece poucas informações básicas caso seja utilizado sem outros plugins. ● Necessário alteração no wp-config: define('SAVEQUERIES', true); Por padrão, informa a versão do PHP e MySQL, uso de RAM, consultas SQL, WP Query e objeto retornado, request, query string e rewrite rule utilizada. Através de plugins, abrange também shortcodes, constantes, post types, ações e filtros, transients, WP cron, dependências de CSS e JS, requisições remotas, performance de actions e filters, e muito mais.
  • 22.
  • 23.
    Query Monitor Painel dedesenvolvimento para WordPress extremamente versátil, mostra informações detalhadas de consultas ao banco, erros de PHP, hooks e actions, requests, variáveis de query, uso de arquivos do tema e template parts, e muito mais. ● Ativação automática sem uso de constante no arquivo wp-config. ● Dezenas de opções padrão. ● Extensível através de plugins. ● Compatível com add-ons do Debug Bar.
  • 24.
  • 25.
    xdebug ● Debug interativopasso-a-passo ○ Examina estrutura de dados, valores de variáveis, retorno de funções e fluxo de execução do código. ○ Usado em conjunto com uma IDE que ofereça suporte (VS Code, Sublime, NetBeans, Eclipse…) ● Adiciona rastreamento de pilha (stack tracing) a erros, exceções, alertas e notices do PHP. ● Profiling ○ Analisa recursos utilizados por cada chamada a uma função, ajudando a localizar gargalos de performance e visualizar a execução do código.
  • 26.
  • 27.
  • 28.
  • 29.
    Blackfire Profiler ● Analisa detalhadamenteo consumo de recursos: tempo de execução, uso de CPU, RAM, I/O (disco), rede, chamadas HTTP e consultas SQL. ● Indica funções mais “custosas” em cada métrica. ● Gera gráficos detalhados. ● Cloud-based, “as-a-service”. ● Pago (possui planos gratuitos).
  • 30.
  • 31.
    Para saber mais ●Debugging in WordPress ● Fatal Error Recovery Mode in WordPress 5.2 ● Query Monitor – The Developer Tools Panel for WordPress ● Query Monitor – Depurar o WordPress e Melhorar o Desempenho do Website ● xdebug documentation
  • 32.
  • 33.