martes, 13 de noviembre de 2012

"Profiling" en CodeIgniter

Hace unos días me encontraba realizando el modelo de una aplicación en CodeIgniter para lo cual uso el Active Record (AR) que trae incorporado, en ese momento se me ocurrió que sería bueno probar el SQL que se genera para estar seguro de que todo va bien. En una aplicación php convencional o incluso en CodeIgniter usando sentencias SQL crudas, y no el AR, lo normal es que ejecutara algo asi en una vista:

echo $SQL;

Con esto imprimiría el SQL y lo podría usar en algún gestor de base de datos. El problema es que al estar usando el AR no construyo SQL crudo. 

Una manera de solventar este problema fue haciendo uso del "Profiler" de CodeIgniter el cual me permite  desplegar una serie de información sobre la ejecución de la aplicación, muestra tiempos de ejecución, datos de sesión de los POST y, lo que necesitaba, las consultas SQL realizadas.

Para activar esta importante característica sólo debemos agregar en el método de algún controlador que queramos perfilar lo siguiente:

$this->output->enable_profiler(TRUE);

En el caso de querer desactivar esta característica pues sólo hacemos:

$this->output->enable_profiler(FALSE);

Como trato de utilizar el perfilador en cada método de mis controladores entonces uso una variable que defino en el constructor a la cual llamo:

$this->enable_profiler = TRUE;

y luego en cada método:

$this->output->enable_profiler($this->enable_profiler);

con esto puedo controlar de una sola vez para todos los métodos cuando quiero que se perfilen o no.

Hay mucho más sobre "Profiling" en la documentación de CodeIgniter:
http://codeigniter.com/user_guide/general/profiling.html
http://codeigniter.com/user_guide/libraries/benchmark.html

viernes, 9 de noviembre de 2012

Comenzando...

Saludos. Desde hoy espero comenzar a escribir sobre temas variados y de la vida diaria. El título del blog es un parafraseo que hago sobre unas palabras del Libertador escritas a Pedro Gual donde decía: "Para juzgar bien de las revoluciones y de sus actores, es preciso observarlas muy de cerca y juzgarlas muy de lejos.". Entonces, espero poder observar muy de cerca y juzgar muy de lejos.