Como você depura plugins?

44

Sou muito novo na criação de plug-ins e estava tendo dificuldades para depurar.

Eu usei muito eco e é desleixado e feio.

Tenho certeza de que há uma maneira melhor de fazer isso, talvez um IDE com um depurador que possa executar o site inteiro incluindo o plug-in?

    
por Sruly 12.08.2010 / 01:09

16 respostas

21

Entre no wp-config.php e altere define('WP_DEBUG', false); para define('WP_DEBUG', true); . Além disso, instale o plug-in Avisos de exclusão obsoletos do Andrew Nacin.

    
por John P Bloch 12.08.2010 / 01:21
12

Se você está recebendo erros impressos, então o x-debug é uma extensão brilhante do PHP que adiciona backtraces modernos ao PHP.

Se você está tentando descobrir o que está acontecendo onde não há erros, minha abordagem favorita é definir uma função que registra sua saída em um arquivo. Então eu plog ($ variável) e que aparece no arquivo de log que eu possa examinar. Isso é especialmente útil quando você está tentando descobrir o que aconteceu antes do cabeçalho () ser chamado ou outras situações em que não é possível imprimir no STDOUT.

    
por tomdxw 25.08.2010 / 20:30
10

Use o xdebug + o NetBeans IDE. Quando totalmente configurado - o que é fácil de fazer - você pode definir pontos de interrupção em seu plug-in e observar variáveis nos pontos de interrupção. Eu acho que é a melhor maneira de depurar plugins ou quaisquer aplicativos PHP para esse assunto.

    
por Raj 25.08.2010 / 14:34
6

Eu depuro a maneira antiga, error_log() ing e var_dump ing. Eu acho que é a maneira mais eficiente para mim, eu tenho um par de funções de wrapper para lidar com diferentes tipos de dados, como error_log ing matrizes e objetos pode ser uma dor. Além disso, usar print_r() in pode ser difícil de ler quando não estiver em <pre> . Eu tenho tj_log() para log de erros, e tj() para mostrar a saída (que basicamente mostra qualquer tipo de dados em um mannor apresentável:

function tj( $code ) {

    ?>
    <style>
        .tj_debug { word-wrap: break-word; white-space: pre; text-align: left; position: relative; background-color: rgba(0, 0, 0, 0.8); font-size: 11px; color: #a1a1a1; margin: 10px; padding: 10px; margin: 0 auto; width: 80%; overflow: auto; -moz-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -webkit-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: none; }
    </style>
    <br /><pre class="tj_debug">

    <?php
    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        var_dump( $code );

    else :
        print_r( $code );

    endif;

    echo '</pre><br />';

}

function tj_log( $code ) {

    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        $code = var_export( $code, true );

    else :
        $code = print_r( $code, true );

    endif;

    error_log( $code );

}

Então, eu apenas faço: tj( $current_user ); ou qualquer outra coisa.

    
por Joe Hoyle 12.08.2010 / 17:04
5

Depois de mexer em vários IDEs, me acomodei no velho Notepad ++ com um esquema de cores de realce de sintaxe ultra-personalizado.

Eu tenho uma macro configurada de tal forma que quando eu clico em Shift-Ctrl-X, o código a seguir obtém a saída onde meu cursor está:

echo "<pre>";
var_dump($);
echo "</pre>";
exit();

É simples, mas eu geralmente posso caçar 90% dos meus bugs com esta macro mais o WP_DEBUG ativado.

    
por SethMerrick 12.08.2010 / 04:58
5

Eu escrevi uma pequena classe para fazer um arquivo de log, é muito útil quando você está depurando chamadas ajax.

enlace

Você só precisa fazer algo como:

Debug :: log ("Esta é uma mensagem de depuração");

Quando essa linha é executada, a mensagem será adicionada no arquivo de log e, depois disso, você pode usar o comando tail (se você estiver usando algum sistema operativo de estilo do Unix)

tail -f mylogfile.log

Se você pode passar para esta função uma matriz ou um objeto também.

note você precisa alterar a linha 20 para um caminho onde você deseja salvar seu arquivo de log

    
por Gnuget 14.08.2010 / 02:19
3

Eu uso o Aptane IDE no Linux e UltraEdit no Windows, e este também tem um analisador de PHP. Além disso, vejo todas as dicas do xDebug com a constante WP_DEBUG definida em wp-config.php .

Veja também minha postagem sobre este tópico e sinta-se à vontade para comentar e dar feedback sobre seu desenvolvimento ferramentas.

    
por bueltge 29.01.2013 / 22:45
2

Eu recomendo verificar FirePHP . Você pode enviar informações de depuração para os cabeçalhos Firebug sobre HTTP do Firefox, o que geralmente resulta em uma saída mais limpa de depuração.

    
por Annika Backstrom 12.08.2010 / 05:02
2

Não é tão ruim assim: Eclipse Está perto de PhpStorm + free.

    
por kaiser 25.08.2010 / 00:25
1

Existem dois IDEs que posso recomendar e usei extensivamente: PhpED (somente Windows) e PhpStorm + XDEBUG (Mac, Windows e Linux.) Estou no Mac agora, portanto, só posso usar o último.

Ambos eles ROCK! A boa notícia é que o PhpStorm custa US $ 49 antes de setembro de 2010 e apenas US $ 99 depois disso. Se eu estivesse no Windows e tivesse que escolher novamente, não sabia qual escolheria.

Francamente, não posso deixar de sentir que qualquer desenvolvedor de plugins que não esteja usando uma dessas duas ferramentas está seriamente incapacitado, especialmente se elas forem relativamente novas no desenvolvimento de plugins do WordPress.

    
por MikeSchinkel 12.08.2010 / 05:15
1

Krumo - a classe de depuração php com estilo

Outra coisa realmente legal é a classe php "krumo". É implementado em ½ min e oferece uma maneira fácil de depurar todo tipo de variáveis:

  • objetos,
  • matrizes,
  • strings / float / integer / etc.

Além disso ajuda no rastreamento, mostra classes carregadas ou arquivos incluídos e tudo sob demanda.

Mais é GRÁTIS!

Download

Krumo @sourceforge

    
por kaiser 11.08.2015 / 16:55
0

Eu uso um plug-in de $ 13 chamado LogPress que você pode comprar no ThemeForest e é um Deus enviado por completo. Você pode depurar tudo relacionado a seus plugins e site. Suporta o log de console do Firebug e muito mais. Eu não posso viver sem isso, é o quanto eu uso esse plugin.

Este plugin é provavelmente o melhor dinheiro que já gastei e salvou incontáveis horas no meu desenvolvimento de plugins do Wordpress.

    
por Dwayne Charrington 14.01.2011 / 12:32
0

Estou usando o phpED e o xdebug, mas para mim (e parece para outra pessoa) é impossível depurar os plugins ou o arquivo do tema! O depurador só pára nos pontos de interrupção que estão nos arquivos "core" principais ou originais! alguem pode me ajudar?

    
por Kreker 22.02.2011 / 21:00
0

Primeiramente, adiciono define('WP_DEBUG', false); ao arquivo wp-config.php (como a maioria das pessoas já disse) à minha instalação local, que é uma cópia recente de um site de produção relevante (arquivos e dados). Isso torna as coisas rápidas, seguras, separadas, mas reflete bem pelo menos um lugar onde o plug-in será realmente usado.

Também adiciono o plug-in Debug Bar junto com alguns dos complementos da Barra de Depuração (Transientes por exemplo) - conforme apropriado para seus plugins.

Eu também uso o add-on do Firebug para o Firefox, que é excelente para ajudar a rastrear problemas de html, css e JavaScript, bem como analisar a estranheza do layout.

Eu codifico usando o UltraEdit que eu usei por mais de 15 anos para um monte de codificação (php através de SQL) tanto no trabalho quanto em casa e isso funciona bem para mim, mas talvez não tenha o suficiente para avaliar um IDE para muitas pessoas. Ele tem destaque de sintaxe, conclusão automática e recursos de layout de código e um monte de ferramentas de atalho html e css que podem ajudar a evitar erros de digitação e similares. Principalmente isso traz familiaridade para mim, que é um aspecto importante, muitas vezes esquecido na corrida para o novo. A memória muscular auxilia na repetibilidade mesmo na codificação.

E é claro que eu geralmente tenho alguma página apropriada do codex aberta em outra guia em um exemplo adequado.

Todos estes ajudam de diferentes maneiras para destacar erros de codificação, de análise, funcionais e de layout e não interferem muito na forma como codifico ou se nada está errado. A maioria pode ser ignorada ou desativada um pouco se você estiver experimentando ou trabalhando em algo que você revisitará mais tarde.

Ah, e não há nada errado com um eco ou print_r bem posicionado para verificar algo em uma chave (contanto que você os remova quando terminar).

    
por Lunc 19.11.2015 / 16:17
0

Confira Monitor de consultas combinado com Extensão do Monitor de Consulta para depuração abrangente do WordPress (erros / notificações / stricts / avisos do PHP, consultas ao banco de dados, caminhos, constantes, solicitações HTTP, transientes, variáveis de sessão, var despejos).

Confira também Todos Post Meta e Salvando Quais plugins para informações específicas sobre posts.

    
por Caleb 19.11.2015 / 16:53
0

PHPStorm e Xdebug é um jogo que está mudando para o desenvolvimento do WordPress. Altamente recomendo agora. Especialmente com as ferramentas de depuração inline.

    
por Emanuel Rocha Costa 30.01.2016 / 03:56