Mis primeras experiencias (con CodeIgniter)


Estoy terminando mi primer trabajo con CodeIgniter y han sido meses de trabajo en los que he conocido este Framework para PHP.



Como en este mundo del desarrollo y la programación hay tantas opciones, es claro que cada punto de vista es muy subjetivo y refleja mi opinión basada en mi área exclusiva de trabajo y mi experiencia.

Empezaré diciendo que CodeIgniter es un framework muy ligero, se instala muy rápido e igualmente se configura muy rápidamente. Este trabajo que he desarrollado tenía por requisito trabajar con MySQL, así que me ajusté a esa condición y configuré el framework para trabajar con MySQL. Haciendo un paréntesis, tengo en mente probar el driver para Firebird que desarrolló Carlos García, espero realizar esto en los próximos días.


Como primer punto, hay que destacar que utiliza el patrón Modelo Vista Controlador, y lo implementa de una manera muy sencilla:



  • Los modelos controlan los accesos a los datos.

  • Los controladores aplican la lógica del programa, haciendo uso de los modelos, y

  • Las vistas, que igualmente se referencian desde el controlador, contienen el despliegue de los datos.


Contrario a otros frameworks, es muy flexible, pudiendo utilizar Controladores y Vistas sin Modelos e incluso solamente Controladores, aunque lo más deseable es aprovechar todos estos recursos. Entonces vemos que el elemento central es el Controlador, que es el que recibe los datos y despliega las vistas cada vez que llamamos a una URL de nuestro sitio.

Cada controlador se refleja como un “directorio” ó “carpeta” tradicional de una URL, y a su vez cada función de un controlador es el siguiente nivel de “carpeta” o “archivo”.

Hablando estrictamente en POO, un controlador es una clase (derivada de la clase CI_Controller, y las funciones son métodos de la clase.


Hasta aquí, este es el punto central de CodeIgniter: Modelos, Controladores y Vistas.

Otros puntos a destacar y que complementan al núcleo de CI son los Helpers, Clases, Bibliotecas de clases, y enrutamientos, lo cual comentaré en artículos posteriores.


Concluyendo este breve e introductorio artículo, y teniendo el antecedente de haber utilizado CakePHP, me parece que CodeIgniter es:



  • Muy sencillo de usar, para aquellos que dominan conceptos de POO y Frameworks.

  • Muchas cosas no son tan automáticas como en CakePHP, pero a su vez esto le da una sencillez muy deseable.

  • Aunque no tiene tanta “Automagic” como CakePHP, cuenta con un nivel de automatización de tareas que reduce de manera muy grande los tiempos de desarrollo –comparado con PHP sin usar Framework-, y una organización excelente, al tener la aplicación separada en capas.


En fin, hay muchas Frameworks para PHP, para muestra solamente hay que visitar http://www.phpframeworks.com/ por lo que evaluar una a una es un trabajo arduo y que algunos no podríamos realizar. Sin embargo CakePHP tiene todo lo que un programador desea para realizar aplicaciones PHP de manera rápida y segura, y con una instalación y configuración igualmente ágil.