web-dev-qa-db-fra.com

Comment déboguez-vous les plugins?

Je suis assez nouveau pour créer des plugins et j'avais du mal à déboguer.

J'ai utilisé beaucoup d'écho et c'est moche.

Je suis sûr qu’il existe un meilleur moyen de le faire, peut-être un IDE avec un débogueur que je peux exécuter tout le site en incluant le plugin?

47
Sruly

Allez dans wp-config.php et changez define('WP_DEBUG', false); en define('WP_DEBUG', true);. En outre, installez Journal Avis obsolètes plugin de Andrew Nacin.

21
John P Bloch

Si vous obtenez des erreurs imprimées, alors x-debug est une brillante extension PHP qui ajoute des traces modernes à PHP.

Si vous essayez de déterminer ce qui se passe sans erreurs, mon approche préférée consiste à définir une fonction qui enregistre la sortie dans un fichier. Je fais donc plog ($ variable) et cela apparaît dans le fichier journal que je peux ensuite examiner. Ceci est particulièrement utile lorsque vous essayez de savoir ce qui s'est passé avant l'appel à header () ou dans d'autres situations dans lesquelles vous ne pouvez pas imprimer sur STDOUT.

12
tomdxw

Utilisez xdebug + NetBeans IDE. Une fois entièrement configuré - ce qui est facile à faire -, vous pouvez définir des points de rupture dans votre plug-in et regarder des variables aux points de rupture. Je pense que c'est le meilleur moyen de déboguer des plugins ou des applications php.

10
Raj

Je débogue à l'ancienne, error_log()ing et var_dumping. Je trouve que c’est le moyen le plus efficace pour moi. Je dispose de deux fonctions d’emballage pour gérer différents types de données, car les tableaux et les objets error_loging peuvent être pénibles. En outre, utiliser print_r() dans peut être difficile à lire quand ce n’est pas dans un <pre>. J'ai tj_log() pour la consignation des erreurs, et tj() pour afficher la sortie (qui montre essentiellement tout type de données dans un mannor présentable:

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 );

}

Alors je fais juste: tj( $current_user ); ou autre chose.

6
Joe Hoyle

J'ai écrit une petite classe pour créer un fichier journal, ce qui est très utile lorsque vous déboguez des appels ajax.

http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php

Vous devez seulement faire quelque chose comme:

Debug :: log ("Ceci est un message de débogage");

Lorsque cette ligne est exécutée, le message est ajouté dans le fichier journal et vous pouvez ensuite utiliser la commande tail (si vous utilisez un système d'exploitation de style unix).

tail -f mylogfile.log

Si vous pouvez transmettre à cette fonction un tableau ou un objet également.

note vous devez modifier la ligne 20 pour un chemin où vous souhaitez enregistrer votre fichier journal.

5
Gnuget

Après avoir bricolé avec un certain nombre d'EDI, je me suis installé dans la vieille vieille { Notepad ++ } _ avec une palette de couleurs Syntax Highlighting ultra personnalisée.

J'ai une macro configurée de telle sorte que lorsque je frappe Shift-Ctrl-X, le code suivant est affiché là où se trouve mon curseur:

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

C'est simple, mais je peux généralement traquer 90% de mes bogues avec cette macro plus WP_DEBUG activé.

5
SethMerrick

J'utilise Aptane IDE sous Linux et UltraEdit sous Windows, qui possède également un analyseur PHP. De plus, je visualise toutes les astuces de xDebug avec la constante WP_DEBUG définie dans wp-config.php.

Voir aussi mon post sur ce sujet et n'hésitez pas à commenter et donner votre avis sur vos outils de développement.

3
bueltge

Pas si mal aussi: Eclipse C'est proche de PhpStorm + free.

2
kaiser

Je recommande de vérifier FirePHP . Vous pouvez envoyer des informations de débogage aux en-têtes Firebug over HTTP de Firefox, ce qui permet généralement une sortie de débogage plus propre.

2
Annika Backstrom

Je peux recommander deux types d’EDI que j’ai beaucoup utilisés: PhpED (Windows uniquement) et PhpStorm + XDEBUG (Mac, Windows et Linux.) Je suis sur Mac pour pouvoir uniquement utiliser le dernier.

Les deux ROCK! La bonne nouvelle que PhpStorm coûte 49 $ avant septembre 2010 et seulement 99 $ après cela. Si j'étais sous Windows et que je devais choisir à nouveau, je ne savais pas lequel je choisirais.

Franchement, je ne peux pas m'empêcher de penser que tout développeur de plug-in n'utilisant pas l'un de ces deux outils est gravement handicapé, en particulier s'il est relativement nouveau dans le développement de plugins WordPress.

1
MikeSchinkel

Krumo - la classe de débogage php stylisée

Une autre très belle chose est la classe php "krumo". Implémenté en ½ min, il offre un moyen simple de déboguer toutes sortes de variables:

  • objets,
  • tableaux,
  • chaînes/float/integer/etc.

Plus cela aide avec le traçage, montre les classes chargées ou les fichiers inclus et tout à la demande.

Plus c'est GRATUIT!

Télécharger

Krumo @sourceforge

1
kaiser

Premièrement, j'ajoute define('WP_DEBUG', false); au fichier wp-config.php (comme l'ont dit la plupart des gens) à mon installation locale, qui est une copie récente d'un site de production pertinent (fichiers et données). Cela rend les choses rapides, sûres, séparées mais reflète bien au moins un endroit où le plugin sera réellement utilisé.

J'ajoute également le barre de débogage plugin avec certains des add-ons de la barre de débogage (transitoires par exemple) - en fonction de vos plugins.

J'utilise également l'add-on Firebug pour Firefox, qui est excellent pour aider à repérer les problèmes liés au html, au css et au JavaScript, ainsi que pour se familiariser avec l'étrangeté de la mise en page.

Je code à l'aide d'UltraEdit, que j'utilise depuis plus de 15 ans pour tout un tas de codes (de PHP à SQL) au travail et à la maison. Cela fonctionne donc bien pour moi, mais je n'ai peut-être pas assez de points pour que je puisse IDE pour beaucoup de gens. Il présente des fonctionnalités de coloration syntaxique, de complétion automatique et de présentation du code, ainsi que de nombreux outils de raccourci HTML et CSS permettant d'éviter les fautes de frappe et autres. Généralement, cela m’apporte une familiarité qui est un aspect important souvent négligé lors de la Rush to the new. La mémoire musculaire facilite la répétabilité, même lors du codage.

Et bien sûr, une page appropriée du codex est généralement ouverte dans un autre onglet d'un exemple approprié.

Celles-ci aident toutes de différentes manières à mettre en évidence les erreurs de codage, d’analyse, de fonctionnalité et d’agencement et n’interfèrent pas beaucoup dans la façon dont je code ou si rien ne va. La plupart peuvent être ignorés ou désactivés un peu si vous expérimentez ou travaillez sur quelque chose que vous revisiterez plus tard.

Oh, et il n'y a rien de mal avec un écho ou une print_r bien positionné pour vérifier quelque chose d'une clé (tant que vous les enlevez quand vous avez terminé).

0
Lunc

Check out Query Monitor combiné avec Query Monitor Extend pour un débogage complet de WordPress (erreurs PHP/notifications/stricts/warnings, requêtes de base de données, chemins, constantes, requêtes HTTP, transitoires, variables de session, dumps var) .

Consultez également All Post Meta et Saving What plugins pour des informations spécifiques sur les posts.

0
Caleb

PHPStorm et Xdebug est un jeu qui change pour moi pour le développement WordPress. Je le recommande vivement maintenant. Spécialement avec leurs outils de débogage en ligne.

0
Emanuel Rocha Costa

J'utilise phpED et xdebug mais pour moi (et pour quelqu'un d'autre), il est impossible de déboguer le fichier de plugins ou le thème! Le débogueur ne s'arrête que sur les points d'arrêt contenus dans les fichiers "principaux" principaux ou d'origine! Quelqu'un peut m'aider?

0
Kreker