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.
lo probar y dare mi opinion, hasta dond eleo es muy interesante y es parchable en donde tiene sus puntos debiles
Estoy buscando un framework PHP con las características que Ud. menciona…En realidad todavía no he utilizado ninguno. Voy a probar éste a ver. Cualquier información adicional que pueda publicar sería de gran utilidad.
hola…estoy de acuerdo contigo en que el framework es muy bueno, lo he usado para crear un sistema web, uso vistas controladores sesiones etc etc etc pero hay cosas q aun no se, por ejemplo ahora q kiero colgar ese trabajo no se q colgar, como es q el servidor o hosting va reconocer mi controlador como tal, algunos espacios web esperan q uno suba pantallas html imagenes y esas cosas pero q hay cuando es un controlador el q manda??? :S la verdad soy un erudito en el tema por eso recuro a kien pueda ayudarme y le estare muy agradecido…
Hola esta es una pregunta general de verdad que necesito de su ayuda, yo desarrolle una pequeña aplicacion de blog con codeigniter, y bueno de manera local jalo perfecto… pero a la hora que lo subi a mi dominio donde hago pruebas me encontre que coloque toda la carpeta de CodeIgniter en la carpeta de public_html y todo va bien hasta que le doy clic a algun boton para que haga algo me sale un error del cual no se que hacer me dice que :
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Cont_blog::$Blogmodel
Filename: blogs/cont_blog.php
Line Number: 50
Fatal error: Call to a member function inserta() on a non-object in /home/synetica/public_html/CodeIgniter/system/application/controllers/blogs/cont_blog.php on line 50
osea como si no cargara el modelo que en mi caso se llama Blogmodel.
Si alquien puede ayudarme no quiero la solucion una orientacion es lo mas justo gracias y de antemano gracias por la atencion al leerlo