CodeIgniter un PHP Framework fácil y ligero.

Existe un sin fin de PHP frameworks, todos en su mayoría inspirados bajo el modelo MVC (Model-View-Controler), que tan exitosamente ha sabido popularizar Ruby On Rails (http://www.rubyonrails.org/), y que ha catapultado a este lenguaje japones a lo más cool del desarrollo web.

Sin embargo hay miles, sino millones de desarrolladores web o system administrator, que ya sabiendo PHP, no tienen tiempo, les parece un riesgo innecesario cambiar de lenguaje de programación, o sencillamente no quieren aprender nada nuevo. Lo cierto es que PHP se penso como un lenguaje estructurado, este enfoque fue tremendamente exitoso en sus primeros años pero mostro sus flaquezas cuando los proyectos a emprender comenzaron a crecer y requerir el trabajo en equipo de varios programadores y diseñadores web. Bajo ese nuevo enfoque las características de orientación a objetos comenzaron ha aparecer en PHP 4 y se profundizaron en PHP 5. Desde ese punto de vista PHP nunca podra superar a Ruby, que fue diseñado desde el principio para ser orientado a objetos. Pero no se alarme, no todo esta perdido; al igual que otros lenguajes estructurados que han sido parchados para trabajar con objetos cómo Perl por ejemplo, PHP ofrece actualmente lo mínimo necesario para implementar sobre él, el esquema MVC.

Muchos de los frameworks de PHP ofrecen MVC, pero ninguno es tan ligero y flexible como CodeIgniter (http://codeigniter.com/). Lo mejor de todo es que CodeIgniter puede ser tan sólo VC (View-Controler) , es decir no fuerza al usuario a utilizar una DB para un desarrollo. Además su separación de código PHP y código HTML no esta basada en un template en particular, puedes usarlo incluso sin un template.

Adicionalmente a lo anterior la documentación es excelente (lastimosamente sólo en inglés por ahora), pero el manual y los tutoriales (en video), son sencillamente un ejemplo de cómo se debe documentar y enseñar un framework. Cabe resaltar que su soporte de Ajax aunque mínimo es lo suficiente para desarrollar aplicaciones vistosas y ágiles. Los tutoriales en video pueden ser vistos desde aquí: http://codeigniter.com/tutorials/

A diferencia de otros frameworks que incluyen un sistema de validación de usuarios por defecto, CodeIgniter no lo tiene. Lo cuál puede verse como una ventaja o desventaja segun la naturaleza del proyecto. Pero para aquellos que lo requieran una implementación mínima de un sistema de validación de usuario y control de sesiones almacenado en una DB MySQL, llamado FreakAuth puede ser descargado desde aquí: http://www.4webby.com/freakauth/

Para aquellos que necesiten que su aplicación suba archivos al servidor web (me sorprendió saber cuanta gente necesita esta característica cuando me di una vuelta por los foros), si bien es cierto CodeIgniter ofrece para ello. Este es limitado y no hay posibilidad de saber que porcentaje del archivo ha sido enviado al server, lo cuál puede ser frustrante si la conexión es lenta, además de que la clase ofrecida en CodeIgniter ofrece soporte de sólo un archivo a la vez. Para ello se puede hechar mano a Postlet (http://www.postlet.com/), que es una Java Applet open source que permite hacer este trabajo de subir archivos al server usando el protocolo HTTP, y es fácilmente integrable a CodeIgniter.

Para aquellos que les gustan los efectos visuales, esta Scriptaculous (http://script.aculo.us/), el cuál requiere de Prototype (http://www.prototypejs.org/), ambos soluciones Ajax open source, fáciles y livianas (para los anchos de banda de ahora).

Para un ejemplo de que se puede hacer con CodeIgniter, pueden hecharle un vistazo al blog de Derek Allard (http://www.derekallard.com/index.php/), su blog esta desarrollado sobre CodeIgniter y hace uso intenso de Ajax para conseguir una alta interactividad con el usuario.

Yo he usado CodeIgniter tambien para desarrollar una pequeña aplicación ASP (Application Service Provider), que en un principio se estimo un tiempo de desarrollo de 1 mes, finalmente, la aplicación estuvo lista en tan sólo 1 semana. Y eso que no soy un desarrollador de tiempo completo, pues mi actividad principal es System Administrator.

No puedo más que recomendar este framework para aquel que desee desarrollar una aplicación web rápidamente, y que que necesite un framework liviano y rápido (el rederizado de las páginas es impresionantemente rápido), además de que CodeIgniter ofrece el cache en el propio server de las páginas generadas, para aumentar aún más la perfomance. Tiene sus limitaciones como todo framework, pero de lejos es el más sencillo, mejor documento y altamente flexible. Espero que disfruten usarlo tanto como yo.