✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Lendo e entendendo os logs de erros do WordPress, parte 2

35

Da última vez, passamos pelo seguinte:

  1. configurando constantes de depuração,
  2. localizar um arquivo de log de erros,
  3. entender como ler o arquivo de log,
  4. Entendendo os rastreamentos de pilha
  5. Entendendo como ler a pilha

Por mais legal que isso seja, ainda é importante entender como gravar dados no log de erros de um aspecto programático. Ou seja; uma coisa é se o seu trabalho gerar erros, avisos ou avisos.

Lendo e entendendo os logs de erros do WordPress, parte 2

É outra coisa se você quiser entender como gravar informações no arquivo para pesquisa e depuração manualmente.

Neste post, continuaremos fazendo exatamente isso para entender melhor os logs de erros do WordPress.

Entendendo os logs de erros do WordPress, parte 2

Qual é o objetivo de escrever no log de erros, afinal? Quero dizer, é mesmo parte do processo de depuração?

Do post anterior :

Mas e o caso de quando queremos despejar algo para obter informações sobre o que o WordPress ou PHP está vendo? Isso também é útil.

Quando os programadores pensam em depuração, muitos deles pensam em usar um depurador real (ou seja, um software), definir pontos de interrupção e percorrer o código para observar o valor das variáveis ​​enquanto o programa é executado.

Vamos chegar a esse ponto, mas antes de fazer isso, vamos dar uma olhada em como podemos gravar no log de erros para nos dar uma visão sobre o desempenho do nosso trabalho.

Afinal, uma coisa é o nosso trabalho estar lançando avisos, erros e avisos. Outra é se há informações que queremos ver. E é aí que a gravação no log de erros entra em ação.

Entendendo as funções do PHP

Para gravar no log de erros, é importante entender duas funções do PHP:

  1. log_erro
  2. print_r

No que diz respeito à função error_log, observe que sua finalidade é:

Envie uma mensagem de erro para as rotinas de tratamento de erros definidas

Na maioria dos casos, isso é configurado para gravar no arquivo de log para nós por meio da configuração padrão do WordPress e do PHP. Mas há mais do que isso, porque geralmente queremos gerar os valores de variáveis, matrizes, objetos e assim por diante.

Para isso, precisa ser capaz de usar print_r em conjunto com error_log. print_r faz o seguinte:

Imprime informações legíveis por humanos sobre uma variável

E se você ler o manual, notará que são necessários dois argumentos, sendo que o segundo deve ser definido como true se você quiser que o resultado de uma função seja impresso no arquivo de log.

Especificamente, como o manual afirma:

Se você quiser capturar a saída de print_r(), use o returnparâmetro. Quando este parâmetro é definido como TRUE, print_r() retornará as informações em vez de imprimi-las.

Portanto, a ideia geral de escrever o valor de um array, digamos $exampleArray, seria algo assim :

<?php

error_log(print_r($exampleArray, true));

Mas e no contexto do WordPress?

Escrevendo valores no log de erros no WordPress

Então, o acima descreve as funções que são construídas no PHP que precisamos, mas como isso se parece no contexto do desenvolvimento do WordPress.

Para fazer isso, digamos que implementamos uma versão do Registry Pattern. Em nossa implementação do padrão, também temos um método chamado start que podemos chamar assim que todos os nossos objetos forem adicionados ao registro.

Pode parecer algo assim:

<?php

/**
 * Starts all of the objects stored is the registry by calling
 * the `start` method that's available on each of the objects.
 */
public function start()
{
    foreach ($this->storage as $obj) {
        $obj->start();
    }
}

Agora, no que diz respeito à implementação, isso é simples. Mas e se quisermos ver quais objetos estão sendo invocados por meio de cada iteração do loop?

A ideia por trás disso é que podemos iterar pelos objetos armazenados e chamar um método em cada um deles. Isso se baseia na ideia de que cada um dos objetos tem um método disponível em cada um deles (que pode ser aplicado por uma interface ).

Primeiro, isso levanta uma questão: por que podemos querer fazer isso? Devido à natureza do sistema de gerenciamento de eventos do WordPress, talvez queiramos ter certeza de que cada objeto que esperamos disparar dispara.

Em segundo lugar, como podemos ver quais objetos estão sendo invocados? É aqui que a gravação no log de erros entra em ação. Usando os métodos descritos acima, uma maneira de fazer isso seria fazer o seguinte :

<?php

/**
 * Starts all of the objects stored is the registry by calling
 * the `start` method that's available on each of the objects.
 */
public function start()
{
    foreach ($this->storage as $obj) {
        error_log(print_r($obj, true));
        $obj->start();
    }
}

Isso resultará na seguinte saída:

Lendo e entendendo os logs de erros do WordPress, parte 2

Aqui, você pode ver o objeto; é namespace, são valores de propriedade (incluindo se as propriedades são ou não privadas, protegidas, públicas e assim por diante).

A partir daí, você pode fazer um pouco de depuração se a saída for o que você não esperava ou talvez você possa usar isso para verificar se seu código está fazendo o que você espera.

Este é apenas um exemplo, no entanto. Você pode, no entanto, despejar os valores da variável $storage antes mesmo de iterar pelo loop. Essa escolha depende realmente de você e do que você deseja alcançar.

Usando os plugins instalados

Neste ponto, abordamos os aspectos fundamentais da depuração de código por meio do uso de logs de erros.

Agora, porém, precisamos voltar nossa atenção para os plugins que foram discutidos alguns posts atrás. Depois disso, eventualmente estaremos trabalhando até o Xdebug.

Mas a seguir, veremos as ferramentas disponíveis para nós no próprio WordPress.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação