Cambios importantes en Debug

14 views
Skip to first unread message

Pablo

unread,
Jun 20, 2012, 10:10:10 AM6/20/12
to sif...@googlegroups.com
Buenas a todos,
Han habido cambios importantes en el Debug de SIFO y se ha unificado la gestión desde código de activación/consulta del debug. Revisión:
https://github.com/alombarte/SIFO/commit/1d13c4278818f5252ea9ef501bedac0c75ff1afb

Documentación relacionada con el cambio: http://sifo.me/API/Debug

OJO: se han eliminado métodos y atributos estáticos de clase. Revisar bien los cambios antes de actualizar producción.

Refactor/Limpieza:
Métodos Eliminados:

Domains: El entorno de desarrollo o no no se puede cambiar en tiempo de ejecución. La gestión del debug es independiente de este dato.
  • setDevModeOff()
  • setDevMode( $new_dev_mode )
Controller: Toda la gestión de Debug sólo será en Domains.
  • hasDebug()-> Se mantiene como deprecated. En futuros updates desaparecerá.
  • setDebug()
Atributos eliminados:
Bootstrap: Toda gestión de debug será en Domains.
  • public static $debug = false;
Controller: Toda gestión de debug en Domains.
  • static private $has_debug = false;
Métodos Creados:
Domains:
  • getDebugMode() -> Nos retorna si está activo el debug.
  • setDebugMode( bool ); -> activar o desactovar el debug en tiempo de ejecución.
Funcionalidades:
Debug por módulos:

  • Tenemos el fichero de configuración: debug_config.config. Si está vacío, como viene por defecto, todos funciona como siempre. Desde el puedes especificar que módulos del debug quieres que se carguen. Por ejemplo: $config['debug']['searches'] = true; cargaría sólo las queries a Sphinx.
Funciona la activación de debug via URL:
Hasta ahora no funcionaba y con estos cambios vuelve a estar con nosotros. Podrías tener, en una instancia de desarrollo, el debug desactivado vía el domains y activarlo con ?debug=1 y desactivarlo con ?debug=0

Detección de queries duplicadas:
Estas queries son marcadas con color naranja y aparece un aviso en el summary del debug pintado de naranja también.

Debug en Command Line:
Se añade el debug en la ejecución de scripts. Una vez termina la ejecución ejecuta DebugCommandLineDebugController que se encarga de montar el debug y escribirlo en disco. Concretamente en sifo/logs/cli_debug.html.

Se ha eliminado el parámetro "nodebug" y se ha cambiado a "debugmode" (dm), donde puedes pasarle 1 para activar debug o 0 para desactivarlo. Al estilo de ?debug=1 o ?debug=0. En este caso es independiente del devMode y se puede activar el debug en un script en producción.

Separado el debug.tpl en varios templates:
Así nos permite crear nuevos módulos sin morir en el intento. Todo colocado en el directorio templates/debug. Eliminado /templates/debug.tpl

Integrado DebugMessages en la clase Debug:
Desaparece la clase DebugMessages y se integra esta funcionalidad en la clase Debug. Se ha desarrollado más para poder mostrar los mensajes tanto en el debug, como en consola o en un alert.
La función function trace( $message ) del fichero Krumo.php deja de funcionar, ya que ahora se debe usar este método para ello.

/**
     * @static
     * @param $message Puede ser un string, variable, objeto, etc.
     * @param string $type [log|error|warn] en función de ellos se mostrará de una manera u de otra.
     * @param string $display [html|browser_console|alert] O se muestra en el debug HTML, en la consola del browser o en un alert JS.
     */
    public static function log( $message, $type = 'log', $display = 'html' )

Desde controlador:
\Sifo\Debug::log( $this->getParams(), 'log', 'html' );
\Sifo\Debug::log( $this->getParams(), 'error', 'html' );

\Sifo\Debug::log( $this->getParams(), 'warn', 'html' );

\Sifo\Debug::log( $this->getParams(), 'log', 'browser_console' );

\Sifo\Debug::log( $this->getParams(), 'error', 'browser_console' );
\Sifo\Debug::log( $this->getParams(), 'warn', 'browser_console' );

Saludetes a todos!!
Pablo
Reply all
Reply to author
Forward
0 new messages