Ene 19

Para los que desarrollamos usando el espectacular Framework – CMS Zikula tenemos una herramienta que nos permitirá optimizar nuestros módulos se trata de DebugToolbar el cual nos permite ver el número de consultas SQL y el tiempo que toman en ejecutarse, ademas el tamaño de nuestra página.
This module shows a small toolbar on the upper right side of the web page (see the pictures further on top). This tool bar shows various things: Modulevars of the current module, used memory of PHP, page render time and executed SQL-Queries. I’ve primarily wrote this module because of the SQL-Queries. Zikula can display the Queries, but they will be displayed at the bottom of the website and are even hidden by some Themes. If you switch on the adodb-logging the whole website would be broken. DebugToolbar does not have all these problems.
Sitio de Proyeto: http://code.zikula.org/zkunit
Descarga: http://code.zikula.org/zkunit/downloads
Feb 25
PostNuke nació como un Fork de PHP-Nuke cuando un grupo de desarrolladores talentosos se vieron frustrados con las limitaciones en el desarrollo de este último, y deciden desarrollar una de las mejores soluciones del mundo de una forma más abierta; re-escribir el código enfocándose en altos niveles de seguridad y rendimiento. Un API modular que facilite el desarrollos de terceras partes, entre otros objetivos.
El proyecto como tal comenzó en Julio de 2001. Fue el primero en proveer un centro de operaciones como SourceForge para los desarrolladores de módulos.
En Junio del 2004 se conformó la PostNuke Software Fundation, para asegurar que los objetivos y la dirección del proyecto se mantengan dentro de la filosofÃa del software libre, código de calidad, colaboración y estándares abiertos.
Hasta el dÃa de hoy la comunidad se ha mantenido y la re-escritura de la aplicación está casi completa para el lanzamiento de la ùltima versiòn estable.
Mar 10
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
Últimos comentarios