Cómo depurar tu código

From Joomla! Documentation

This page is a translated version of the page How to debug your code and the translation is 100% complete.

Other languages:
English • ‎español • ‎français

La forma fácil 1 (echo)

La forma más sencilla de ver qué ocurre dentro de tu código es agregar temporalmente declaraciones echo para que las variables muestren sus valores en la pantalla. Por ejemplo, supongamos que quiere saber cuál es el valor de algunas variables cuando $i es "5". Puede usar un código como este:

for ( $i = 0; $i < 10; $i++ ) {
	if ( $i == 5 ) {
		echo '$i=' . $i; 
                // other echo statements 
	}
}

Esto funciona para situaciones simples. Sin embargo, si estás planeando hacer mucho desarrollo en Joomla!, vale la pena el esfuerzo de instalar y aprender un entorno de desarrollo integrado (IDE) que incluya un verdadero depurador de PHP.

La forma fácil 2 (mensaje de Joomla!)

Tu código no siempre mostrará simples declaraciones echo. En ese caso, puede probar esta alternativa, aún de manera fácil:

JFactory::getApplication()->enqueueMessage('Some debug string(s)');

Puedes elegir diferentes tipos de mensaje que corresponden a agrupaciones con diferentes estilos (colores principalmente).

Registro de Joomla!

Joomla! permite guardar mensajes en un archivo de registro y, opcionalmente, también mostrarlos en la página web (de la misma manera que encola el mensaje anterior) y en la Consola de Depuración de Joomla! (que se describe a continuación).

Para guardar un mensaje en el archivo de registro:

JLog::add('my error message', JLog::ERROR);

Para guardar un mensaje y también mostrarlo en la pantalla:

JLog::add('my error message', JLog::ERROR, 'jerror');

El registro en el archivo de registro y en la Consola de depuración se controla a través de la configuración del complemento Sistema - Depuración. Para entender cómo funciona esto, y la configuración relevante del plugin System-Debug, lea la página de documentación de Joomla en Usar JLog.

Usar un IDE

Mira este vídeo de 3 minutos que muestra cómo puedes depurar tu código con un navegador y un IDE

Muchos desarrolladores Joomla! usan el IDE Eclipse. Este es gratis e incluye un depurador. Las instrucciones para instalarlo están disponibles en Configuración de su estación de trabajo para desarrollo de Joomla!, o puedes ver este vídeo sobre la configuración de Eclipse y Xdebug:

Usar el editor PHP Expert

Otra opción es el editor PHP Expert con una extensión instalada para la depuración. Agrega las siguientes líneas al archivo php.ini:

extension=php_dbg.dll
[Debugger]
debugger.enabled=on
debugger.profiler_enabled=off

Lo mejor es establecer profiler_enable en "off". Luego, debes establecer las opciones en el menú Ejecutar/Opciones para usar el servidor HTTP y el directorio en el que se encuentra tu secuencia de comandos. Si todas las opciones son correctas, puedes ejecutar tu secuencia de comandos en modo de depuración haciendo clic en el botón Depurar (F8)

J!Dump

Una extensión a menudo útil que se puede encontrar en el JED es la extensión J!Dump que te permitirá descargar variables, seguimientos de pila e información del sistema en una ventana emergente en tiempo de ejecución. Esta extensión funciona como el comando PHP `var_dump` pero formatea la salida de una manera mucho más legible.

Consola de Depuración de Joomla!

La Consola de Depuración se puede habilitar desde la Configuración global de Joomla!, pestaña Sistema, configurando la opción Sistema de depuración en Sí. Una vez habilitado, el resultado del complemento de depuración se mostrará en la parte inferior de cada página. La salida del plugin JDebug

Establecer esta opción de sistema de depuración también establece la variable global JDEBUG en verdadero, para que pueda controlar si se registran los mensajes mediante la prueba de esta variable:

if(JDEBUG)
{
    //whatever debugging code you want to run, eg
    JLog::add('my debug message', JLog::DEBUG, 'my-debug-category');
}

Este complemento proporciona información importante que puede ayudar a depurar y mejorar el rendimiento de su componente.

Información de la Sesión

Esta sección muestra las variables de estado que se almacenan en los datos de la sesión para permitir que se "recuerden" en las solicitudes HTTP. Los ejemplos incluyen variables que definen los filtros de búsqueda actuales que el usuario ha definido, el punto de paginación en una lista de registros, etc.

File:Session-es.jpg

Información del Perfil

La pestaña Información de perfil del complemento de depuración proporciona información sobre el tiempo y la memoria utilizados para representar la página en función de cada uno de los eventos de la aplicación. Esto puede ayudar a identificar áreas fuera de la velocidad de la red que están contribuyendo a una carga de página grande por el uso de mucha memoria del servidor.

Perfil JDEBUG

Consultas a la Base de Datos

Una de las pestañas más útiles es la pestaña Consultas de la base de datos. Esto proporcionará un registro de todas las consultas que se han ejecutado durante la carga de la página e identificará tanto el tiempo necesario para ejecutar la consulta como si se han producido consultas duplicadas. Esto es particularmente útil al depurar problemas de rendimiento en componentes más grandes, ya que las consultas duplicadas a menudo son un factor presente.

File:Jdebug-query-es.jpg

JFirePHP

Usar Joomla! JFirePHP extension.

IDE Komodo

Debugging Joomla with Komodo IDE