¿Cómo depurar los complementos?

44

Soy bastante nuevo en la creación de complementos y estaba teniendo dificultades para la depuración.

Usé mucho eco y es descuidado y feo.

Estoy seguro de que hay una mejor manera de hacerlo, tal vez un IDE con un depurador en el que pueda ejecutar todo el sitio, incluido el complemento.

    
pregunta Sruly 12.08.2010 - 01:09

16 respuestas

21

Vaya a wp-config.php y cambie de define('WP_DEBUG', false); a define('WP_DEBUG', true); . Además, instale el complemento Registro de registros obsoletos de Andrew Nacin.

    
respondido por el John P Bloch 12.08.2010 - 01:21
12

Si estás imprimiendo errores, entonces x-debug es una brillante extensión de PHP que agrega backtraces modernos a PHP.

Si está intentando averiguar qué ocurre donde no hay errores, mi método favorito es definir una función que registre su salida en un archivo. Así que hago plog ($ variable) y eso aparece en el archivo de registro que luego puedo examinar. Esto es especialmente útil cuando intenta averiguar qué sucedió antes de que se llame a header () u otras situaciones en las que no pueda imprimir en STDOUT.

    
respondido por el tomdxw 25.08.2010 - 20:30
10

Utilice xdebug + NetBeans IDE. Cuando esté completamente configurado, lo que es fácil de hacer, puede establecer puntos de interrupción en su complemento y observar variables en los puntos de interrupción. Creo que es la mejor manera de depurar los complementos o cualquier aplicación de PHP para esa materia.

    
respondido por el Raj 25.08.2010 - 14:34
6

Depuré a la antigua usanza, error_log() ing y var_dump ing. Creo que esa es la forma más eficiente para mí, tengo un par de funciones de envoltorio para manejar diferentes tipos de datos, ya que los arreglos y objetos error_log ing pueden ser una molestia. Además, usar print_r() en puede ser difícil de leer cuando no está en <pre> . Tengo tj_log() para el registro de errores y tj() para mostrar la salida (que básicamente muestra cualquier tipo de datos en una forma presentable:

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

}

Entonces solo hago: tj( $current_user ); o lo que sea.

    
respondido por el Joe Hoyle 12.08.2010 - 17:04
5

Después de juguetear con una serie de IDE, me instalé en el antiguo Notepad ++ con un esquema de color de Sintaxis resaltado muy personalizado.

Tengo una macro configurada de tal manera que cuando presiono Shift-Ctrl-X, el siguiente código obtiene una salida donde está mi cursor:

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

Es simple, pero generalmente puedo encontrar el 90% de mis errores con esta macro más WP_DEBUG habilitado.

    
respondido por el SethMerrick 12.08.2010 - 04:58
5

Escribí una pequeña clase para hacer un archivo de registro, es muy útil cuando estás depurando llamadas ajax.

enlace

Solo necesitas hacer algo como:

Debug :: log ("Este es un mensaje de depuración");

Cuando se ejecute esa línea, se agregará el mensaje en el archivo de registro y, a continuación, podrá usar el comando tail (si está utilizando el sistema operativo de algún estilo de Unix)

tail -f mylogfile.log

Si puede pasar a esta función una matriz o un objeto también.

nota necesita cambiar la línea 20 para una ruta donde desea guardar su archivo de registro

    
respondido por el Gnuget 14.08.2010 - 02:19
3

Uso Aptane IDE en Linux y UltraEdit en Windows, y este también tiene un analizador de PHP. Además, veo todas las sugerencias de xDebug con la constante WP_DEBUG definida en wp-config.php .

Consulte también mi publicación sobre este tema y siéntase libre de hacer comentarios y comentarios sobre su desarrollo. herramientas.

    
respondido por el bueltge 29.01.2013 - 22:45
2

Recomiendo revisar FirePHP . Puede enviar información de depuración a Firebug de Firefox a través de los encabezados HTTP, lo que generalmente hace que la salida de depuración sea más limpia.

    
respondido por el Annika Backstrom 12.08.2010 - 05:02
2

Tampoco está mal: Eclipse Está cerca de PhpStorm + gratis.

    
respondido por el kaiser 25.08.2010 - 00:25
1

Hay dos IDEs que puedo recomendar y los he usado ampliamente: PhpED (solo para Windows) y PhpStorm + XDEBUG (Mac, Windows y Linux). Estoy en Mac ahora, así que solo puedo usar este último.

Ambos de ellos ROCK! La buena noticia es que PhpStorm cuesta $ 49 antes de septiembre de 2010 y solo $ 99 después de eso. Si estuviera en Windows y tuviera que elegir de nuevo, no estoy seguro de cuál elegiría.

Francamente, no puedo evitar sentir que cualquier desarrollador de complementos que no use una de estas dos herramientas tiene una gran desventaja, especialmente si son relativamente nuevos en el desarrollo de complementos de WordPress.

    
respondido por el MikeSchinkel 12.08.2010 - 05:15
1

Krumo - la clase de depuración php con estilo

Otra cosa realmente buena es la clase php "krumo". Se implementa en ½ minuto y ofrece una forma fácil de depurar todo tipo de variables:

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

Plus ayuda con el retroceso, muestra las clases cargadas o los archivos incluidos y todo lo que se solicite.

Plus ¡es GRATIS!

Descargar

Krumo @sourceforge

    
respondido por el kaiser 11.08.2015 - 16:55
0

Uso un complemento de $ 13 llamado LogPress que puedes comprar en ThemeForest y es un envío de Dios absoluto. Puede depurar todo lo relacionado con sus complementos y sitio. Admite el registro de la consola Firebug y mucho más. No puedo vivir sin él, así es como uso este complemento.

Este complemento es probablemente el mejor dinero que he gastado y ha ahorrado innumerables horas en el desarrollo de mi complemento de Wordpress.

    
respondido por el Dwayne Charrington 14.01.2011 - 12:32
0

Estoy usando phpED y xdebug, pero para mí (y parece que para otra persona) es imposible depurar los complementos o el archivo del tema. ¡El depurador solo se detiene en los puntos de interrupción que se encuentran en los archivos principales o originales "core"! ¿Alguien me puede ayudar?

    
respondido por el Kreker 22.02.2011 - 21:00
0

En primer lugar, agrego define('WP_DEBUG', false); al archivo wp-config.php (como ha dicho la mayoría de la gente) a mi instalación local, que es una copia reciente de un sitio de producción relevante (tanto archivos como datos). Esto hace que las cosas sean rápidas, seguras, separadas, pero se reflejen bien al menos en un lugar donde se usará realmente el complemento.

También agrego el complemento Debug Bar junto con algunos de los complementos de Debug Bar (Transients por ejemplo) - según corresponda a sus complementos.

También uso el complemento Firebug para Firefox, que es excelente para ayudar a rastrear problemas de html, css y JavaScript, así como para detectar rarezas en el diseño.

Codifico usando UltraEdit, que he usado por más de 15 años durante un montón de codificación (php a SQL) tanto en el trabajo como en casa y, por lo tanto, esto funciona bien para mí, pero tal vez no tenga suficiente I para calificar como Un IDE para muchas personas. Tiene funciones de resaltado de sintaxis, finalización automática y diseño de código y un montón de herramientas de acceso directo de html y css que pueden ayudar a evitar errores tipográficos y similares. Principalmente esto me trae familiaridad, que es un aspecto importante que a menudo se pasa por alto en la carrera hacia lo nuevo. La memoria muscular ayuda a la repetibilidad incluso en la codificación.

Y, por supuesto, normalmente tengo una página apropiada del códice abierta en otra pestaña de un ejemplar adecuado.

Todo esto ayuda de diferentes maneras para resaltar los errores de codificación, análisis, funcional y de diseño, y no interfiere mucho en la forma en que yo codifico o si nada está mal. La mayoría se puede ignorar o desactivar por un momento si está experimentando o trabajando en algo que revisará más adelante.

Ah, y no hay nada malo con un eco o print_r bien posicionados para comprobar algo en una tecla (siempre que los elimines cuando hayas terminado).

    
respondido por el Lunc 19.11.2015 - 16:17
0

Consulte Monitor de consultas combinado con Query Monitor Extend para la depuración completa de WordPress (errores de PHP / notices / stricts / warnings, consultas de bases de datos, rutas, constantes, solicitudes HTTP, transitorios, variables de sesión, var vertederos).

También puedes ver All Post Meta y Guardando What plugins para información específica en publicaciones.

    
respondido por el Caleb 19.11.2015 - 16:53
0

PHPStorm y Xdebug es un cambio de juego para mí para el desarrollo de WordPress. Muy recomendable ahora. Especialmente con sus herramientas de depuración en línea.

    
respondido por el Emanuel Rocha Costa 30.01.2016 - 03:56

Lea otras preguntas en las etiquetas