Debug en PostNuke
Marzo 10, 2007
Las tareas de depurado al desarrollar en PHP pueden resultar ser algo tedioso, la verdad es que existen varias formas de hacerlo, desde el simple uso de echo, print_r, vardump, die, etc hasta el uso de sofisticados scripts, clases e IDEs de desarrollo.
Sin embargo cuando depuramos código en nuestros desarrollos en un CMS como PostNuke el depurado de código no es una tarea simple por ello a continuación muestro dos maneras de simplificar el depurado basado en un articulo de Frank Schummertz (Landseer).
#1: La forma sencilla
Utilizar una función de depurado que produce la salida necesaria.
Codigo:
/*** Función interna de depurado**/function pnfdebug($name='', $data, $die = false){$modname = pnModGetName();if(pnSecAuthAction(0, $modname . '::', '::', ACCESS_ADMIN)) {$type = gettype($data);echo "\n<!-- inicio del depurado de $name -->\n<div style=\"color: red;\">$name ($type";if(is_array($data)||is_object($data)) {$size = count($data);if($size>0) {echo ", tamaño=$size entradas):<pre>";echo htmlspecialchars(print_r($data, true));echo "</pre>:<br />";} else {echo "):vacio<br />";}} else if(is_bool($data)) {echo ") ";echo ($data==true) ? "verdadero<br />" : "falso<br />";} else if(is_string($data)) {echo ", longitud=".strlen($data).") :$data:<br />";} else {echo ") :$data:<br />";}echo "</div><br />\n<!-- fin del depurado de $name -->";if($die==true) {die();}}}
(Tomado de pnForum y ligeramente mejorado).
Se necesita ACCESS_ADMIN (acceso de administrador) para el modulo que se quiere depurar. El motivo de incluir esto es que se puede dejar el código de depurado en un sitio on-line para continuar el depurado sin que tus usuarios se den cuenta de esto.
#2: La forma difÃcil
Utilizar debugconsole si es que utilizas PHP 5.0.1 o superior.
Primeramente hay que copiar todos los archivos (excepto example.php) en includes/classes/debugconsole/ y actualizar el archive principal (index.php) para que se parezca a lo siguiente:
Codigo
// código normal hasta phpInit(), luego agregar:
include 'includes/classes/debugconsole/debugConsole.php';
// ahora agregamos las variables que queremos mostrar
dc_watch('modulo');
dc_watch('variable');
declare(ticks=1) {
// inicia un cronometro para observar cuanto se demora el modulo en ejecutarse
$myTimer = dc_start_timer('Tiempo de Ejecución:');
// El código original del index.php va aquÃ
// fin del cronometro
dc_stop_timer($myTimer);
}
Esto abrirá una popup javascript (asegúrate que tu navegador esta configurado para aceptarlos) mostrando un sin numero de información de depurado y más. Para mayor información sobre las opciones y posibilidades de la clase debugconsole dirÃgete a su documentación
Enlaces relacionados:
debugconsole
Entrada almacenada bajo: PHP, PostNuke
Este post ha sido visto 761 veces
Suscribirse por mail
Envia comentario
Algunas etiquetas HTML estan permitidas:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Conectate a este comentario | Suscribete a los comentarios via RSS Feed