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/DebugOJO: 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