Desenvolvimento do WordPress: percorrendo o código
Se você acompanhou a série até agora, provavelmente está vendo o quão útil a depuração adequada pode ser, especialmente ao trabalhar no WordPress.
Isso quer dizer que você não apenas pode obter informações valiosas sobre seus próprios projetos, mas também pode ver como o núcleo do WordPress funciona.
Neste ponto, porém, não fizemos muito. Como você deve se lembrar do post anterior (ou se você não assistiu ao screencast, agora é um bom momento para fazê-lo), você pode ver o quanto a depuração oferece.
A verdade é que mal arranhamos a superfície. Como mencionei da última vez, este post e este screencast vão se concentrar especificamente no seguinte:
Na próxima postagem, veremos coisas mais avançadas que podemos fazer, como entrar em funções, sair de funções e passar por cima de funções.
Ainda não estamos em um ponto em que vamos nos preocupar em alterar os valores das variáveis em tempo real, mas definitivamente veremos como podemos usar estrategicamente o depurador para entrar em certas funções, passar por cima de certas funções, e saia de certas funções.
Passando pelo código
Antes de compartilhar o screencast, quero definir o que significa contornar o código em um projeto. Parece algo que fazemos sempre que estamos navegando na base de código.
Mas isso não é verdade no contexto de depuração.
Lembre-se que para os propósitos desta série em particular, estou usando a versão mais recente do WordPress do Subversion. Você pode revisar como configurar isso lendo este post.
Uma palavra sobre etapas
Antes de definir os próximos termos, observe que a ideia de uma “etapa" na depuração é análoga a percorrer linha por linha pela base de código.
Como vimos no post anterior, a execução do programa será interrompida assim que um ponto de interrupção for atingido. A partir daí, o resultado de como o programa prossegue é deixado para nós. E com isso como pano de fundo, vamos definir alguns termos.
- Entrar em uma função é uma ação que, quando você atinge uma chamada de função, o levará para a função. Às vezes isso é útil, como se você quiser ver o que a função está fazendo ou ver como os valores estão sendo definidos; outras vezes, é desnecessário se você se importa apenas com a execução da função ou apenas com o que ela retorna.
- Passar por cima de uma chamada de função permitirá que você ignore a execução de uma função no sentido de que ela ainda é executada, apenas não vemos como ela realmente funciona. Em vez disso, o controle irá para a próxima linha após a execução da função.
- Sair de uma função é usado quando você entra em uma função, atinge um ponto em que termina de avaliar o código e, em seguida, está pronto para voltar para o que a base de código fará a seguir. Isso é útil se você deseja descobrir onde um bug pode estar e suspeitar que está em uma parte do código (onde pode ou não estar).
E é isso. Se isso for novo, pode soar estranho ou pode ser difícil entender isso. Se for esse o caso, tudo bem. É assim que acontece com qualquer coisa nova, certo?
Por outro lado, se você conhece esses termos ou groca as definições deles com facilidade, considere os pontos anteriores como uma atualização.
E agora um screencast
Neste screencast, vou realizar todas as ações acima usando um dos meus próprios plugins – Easier Excerpts. Isso não significa ser qualquer tipo de autopromoção, no entanto. Em vez disso, conheço a base de código e não preciso me preocupar em mostrar o trabalho que está sendo feito para outra pessoa.
Agora que você viu o screencast e sabe que é estritamente minha base de código, você pode baixar o código e executar todas as mesmas ações você mesmo para entender como executar as ações descritas neste post.
Isso fornecerá ainda mais prática para suas habilidades de depuração e deve facilitar o aprimoramento de nossas habilidades de depuração à medida que avançamos na próxima postagem.
A seguir
Este é um post um pouco longo e eu tentei ter certeza de que todas as explicações foram feitas antes de ver o screencast. Afinal, é muito mais fácil ler parágrafos de texto sobre o conteúdo e depois vê-lo em um vídeo curto do que em um vídeo de 15 minutos, não é?
Por mais útil que isso possa ser, ainda há mais do que isso. E é isso que vamos analisar no próximo post. Especificamente, veremos como inspecionar valores de variáveis, revisar o que um array contém e como podemos modificar variáveis em tempo real.
É um material poderoso, mas certifique-se de revisar o primeiro conteúdo, revisar cuidadosamente esta postagem e praticar um pouco antes de seguir em frente.