Comment déboguer les plugins?

44

Je suis un nouveau venu dans la création de plugins et j'avais du mal à déboguer.

J’ai utilisé beaucoup d’écho, c’est moche et laid.

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, y compris le plugin?

    
posée Sruly 12.08.2010 - 01:09
la source

16 réponses

21

Accédez au fichier wp-config.php et remplacez define('WP_DEBUG', false); par define('WP_DEBUG', true); . Installez également le plug-in Log Deprecated Notices d'Andrew Nacin.

    
réponse donnée John P Bloch 12.08.2010 - 01:21
la source
12

Si vous obtenez des erreurs imprimées, alors x-debug est une extension PHP brillante 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 sa 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 d’appeler header () ou d’autres situations dans lesquelles vous ne pouvez pas imprimer sur STDOUT.

    
réponse donnée tomdxw 25.08.2010 - 20:30
la source
10

Utilisez xdebug + l'EDI NetBeans. 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 la meilleure façon de déboguer des plugins ou des applications php.

    
réponse donnée Raj 25.08.2010 - 14:34
la source
6

Je débogue à l’ancienne, error_log() ing et var_dump ing. Je trouve que c’est le moyen le plus efficace pour moi. Je dispose de deux fonctions d’emballage qui gèrent différents types de données, car error_log ing tableaux et objets peuvent être pénibles. De plus, utiliser print_r() in peut être difficile à lire quand ce n'est pas dans un <pre> . J'ai tj_log() pour la consignation des erreurs et tj() pour l'affichage de la sortie (qui indique en gros 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.

    
réponse donnée Joe Hoyle 12.08.2010 - 17:04
la source
5

Après avoir bricolé un certain nombre d'EDI, je me suis installé dans le vieil bloc-notes ++ avec de la palette de couleurs ultra-personnalisée Syntax Highlighting.

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 chasser 90% de mes bogues avec cette macro plus WP_DEBUG activé.

    
réponse donnée SethMerrick 12.08.2010 - 04:58
la source
5

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.

enlace

Il vous suffit de 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.

remarque : vous devez modifier la ligne 20 pour indiquer le chemin où vous souhaitez enregistrer votre fichier journal

.     
réponse donnée Gnuget 14.08.2010 - 02:19
la source
3

J'utilise Aptane IDE sous Linux et UltraEdit sous Windows. Celui-ci dispose également d'un analyseur PHP. De plus, toutes les astuces de xDebug sont affichées avec la constante WP_DEBUG définie dans wp-config.php .

Voir aussi mon publication sur ce sujet et n'hésitez pas à commenter et à commenter votre développement. outils.

    
réponse donnée bueltge 29.01.2013 - 22:45
la source
2

Je vous recommande de consulter 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.

    
réponse donnée Annika Backstrom 12.08.2010 - 05:02
la source
2

Pas si mal aussi: Eclipse C'est presque PhpStorm + gratuit.

    
réponse donnée kaiser 25.08.2010 - 00:25
la source
1

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 maintenant, donc je ne peux utiliser que ce 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.

    
réponse donnée MikeSchinkel 12.08.2010 - 05:15
la source
1

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

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

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

Plus il aide à la traçabilité, affiche les classes chargées ou les fichiers inclus et tout le reste à la demande.

Plus c'est GRATUIT!

Télécharger

Krumo @sourceforge

    
réponse donnée kaiser 11.08.2015 - 16:55
la source
0

J'utilise un plug-in à 13 $ appelé LogPress , vous pouvez acheter sur ThemeForest et c’est un don absolu. Vous pouvez déboguer tout ce qui concerne leurs plugins et leur site. Prend en charge la journalisation de la console Firebug et bien d’autres. Je ne peux pas m'en passer, c'est la quantité de fois que j'utilise ce plugin.

Ce plugin est probablement le meilleur argent que j'ai jamais dépensé et il a économisé d'innombrables heures dans le développement de mon plugin Wordpress.

    
réponse donnée Dwayne Charrington 14.01.2011 - 12:32
la source
0

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

    
réponse donnée Kreker 22.02.2011 - 21:00
la source
0

Tout d'abord, 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 plug-in Barre de débogage avec certains des add-ons de la barre de débogage (éléments transitoires). par exemple) - en fonction de vos plugins.

J'utilise également l'add-on Firebug pour Firefox, qui est excellent pour aider à localiser les problèmes html, css et JavaScript, ainsi que pour se familiariser avec l'étrangeté de la présentation.

Je code en utilisant UltraEdit, que j'ai utilisé pendant 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 pour évaluer un 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. Généralement, cela m’apporte une familiarité, qui est un aspect important souvent négligé dans la course au nouveau. 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 les manières différentes à 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 avec 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é).

    
réponse donnée Lunc 19.11.2015 - 16:17
la source
0

Découvrez le moniteur de requêtes associé à Query Monitor Extend pour un débogage complet de WordPress (erreurs PHP / notices / restrictions / avertissements, requêtes de base de données, chemins, constantes, requêtes HTTP, transitoires, variables de session, variables décharges).

Vérifiez également les Tous les messages méta et Enregistrer ce que plugins pour des informations spécifiques sur les publications.

    
réponse donnée Caleb 19.11.2015 - 16:53
la source
0

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.

    
réponse donnée Emanuel Rocha Costa 30.01.2016 - 03:56
la source

Lire d'autres questions sur les étiquettes