X

Depurar código PHP en WordPress

Anteriormente vimos cómo habilitar el modo debug en WordPress, sin embargo en este artículo vamos a complementar y veremos cómo puedes depurar tu propio código PHP en WordPress y enviar mensajes pasando valores de variables u objetos.

 

Generalidades

Debido a la naturaleza de PHP, si no contamos con herramientas de depuración externas como un IDE de desarrollo u otras herramientas similares, será difícil realizar la depuración de nuestro código; sin embargo aún tenemos una opción simple y es precisamente la impresión de los valores de variables en el archivo debug.log, esto a través de las funciones print_r() y var_dump().

Es posible usar print_r() o var_dump() o incluso la función echo para imprimir en pantalla, sin embargo no siempre lo que queremos depurar en nuestro código se imprime en pantalla.

 

Habilitando la depuración en WordPress

En el archivo wp-config.php de tu sitio web tienes que usar la siguiente configuración de constantes:


define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Esto permitirá reportar los mensajes enviados en el archivo: wp-content/debug.log

 

Enviando mensajes con error_log()

Para enviar mensajes de depuración usaremos la función de PHP error_log(), puedes usar directamente esta función y pasar una cadena, o si vas a enviar variables como array u objetos la puedes combinar con las funciones print_r() y/o var_dump() , de la siguiente manera:


//usando error_log y una variable de cadena
error_log( $variable_cadena  );

Este es el uso más simple, puedes usarlo como cuando depuras con la función echo

//usando print_r
error_log( print_r( $variable, true)  );

Observa que en la función print_r() se usa el segundo parámetro a true, lo cual indica que no imprima en pantalla sino que simplemente pase el valor ya que será registrado por la función error_log()

//usando var_dump
function dump_error_log( $object=null ){
    ob_start();
    var_dump( $object );
    $contents = ob_get_contents();
    ob_end_clean();
    error_log( $contents );
}

dump_error_log( $variable );

dump_error_log() es una función basada en var_dump(), puedes agregar esta función en las funciones generales de tu plugin.

 

Conclusión

Cuando construyes plugins en WordPress no puedes depurar de manera simple, las funciones de print_r() y var_dump(), combinadas con la función error_log() te ayuda en este proceso.

 

Categorías: Recursos
Etiquetas: errorfuncionalidad

Ver comentarios (1)