Reconozco que, aunque mi nivel de programación en PHP no es nada extraordinario, he ido recogiendo frutos de la experiencia a lo largo de todo este tiempo. Me han hecho cambiar mi forma de pensar a la hora de escupir escribir código, pero no pensé que lo fuera a hacer tanto como para utilizar un framework.
¿Que qué es un framework? Para aquellos que no lo entiendan, y para no recurrir a definiciones wikipedistas, podríamos imaginarlo como una capa (conjunto de librerías, clases, métodos…) aplicada a un lenguaje que nos ayuda a realizar tareas repetitivas de manera mucho más sencilla y, porque no, limpia (véase MVC).
De acuerdo, quizá ustedes no lo vean tan extraño eso de utilizar un framework de PHP; no en vano, hay un buen número de personas que usan jQuery como su framework de Javascript (como un servidor), por no nombrar otros tantos. Sin embargo, yo siempre había sido una persona bastante escéptica con éstos para mi lenguaje favorito: ¿No supondrá demasiada carga gratuita? ¿Costará demasiado aprenderlo? ¿Realmente vale la pena?
Es cierto que hace bastante que escuché sobre CodeIgniter, pero nunca me puse a investigar hasta hace unas pocas semanas, cuando descubrí un nuevo mundo. Por supuesto, no es el único framework que existe, y me estuve mirando la documentación (a la vez que comparativas) de otros (que no todos) como:
- Zend framework, el framework “oficial” por excelencia de PHP. La curva de aprendizaje no es muy favorable y los benchmarks tampoco (aunque ese post es algo antiguo, para nuestro querido Zend no parece haber cambiado demasiado, según he podido leer – que no comprobar -). No me gustaba el código resultante.
- CakePHP es otro de los grandes conocidos, aunque no demasiado flexible en algunos momentos (y esto ya lo comprobé personalmente). Es más fácil que Zend y con un código resultante más que legible, sin embargo, no me acabó de gustar por el tema de la rigidez. Aquí hay alguien que apoya a ambos con buenas razones.
- Symfony, que empecé a conocer por queru, ha sido de los que menos me han convencido por su pobre rendimiento y su dificultad para aprender, aunque es bastante completo. Quizá debería de indagar algo más.
- Kohana, que me sugirió Antonio Pardo, me ha dejado completamente impresionado. Es similar a CodeIgniter en cuanto a programación y aprovecha mucho más la potencia de PHP5 (ya que no soporta PHP4, como hace CodeIgniter). Tiene módulos bastante interesantes y creo que eso se traduce en menor tiempo de desarrollo. Sin embargo, en el foro de CodeIgniter encontré una buena opinión (al menos bastante objetiva) que explica que Kohana puede ser bastante prometedor, pero que debería cambiar su rumbo, básicamente.
- Yii, poco conocido respecto a sus competidores, jovencito pero con un crecimiento exponencial. La gente habla bien de él y desde luego su trabajo lo hace. El rendimiento es muy bueno y es todo OOP, además de tener actualizaciones recientes. Por contra, que sea tan joven significa que es aún algo inmaduro, pero me mantendré al día sobre este framework, porque tiene una pinta muy interesante.
También vi algunos otros pero que no me acabaron de llenar. En cualquiera de los casos, todos vienen provistos de una implementación, más fácil o más difícil, de MVC para tus proyectos. Quizá una de las razones más importantes que me hicieron pensar en framework (hasta entonces yo siempre había programado código spaghetti).
VEREDICTO
Para mí, el ganador final es CodeIgniter: fuerte y fiel comunidad, documentación excelente, curva de aprendizaje plana (perfecto para novatos en MVC, ya que es fácilmente implementable), muy extensible, pocos requisitos de parte del servidor (funciona incluso con PHP4 — ¿ventaja a estas alturas?) y soporte para una gran cantidad de base de datos (usando ActiveRecord), entre las principales razones. Sin embargo, hay ciertos puntos en los que cojea:
- No tiene soporte AJAX incorporado. Quizá esto para algunos suponga un problema, aunque para mí se traduce en mayor flexibilidad (aunque algún helper no habría estado de más).
- No tiene módulo auth, algo bastante básico (registro, login, recuperar contraseña…). De acuerdo que la comunidad aporta, pero esto me parece algo imperdonable. Deberían de incorporar uno oficialmente YA.
- Tampoco pasarelas de pago, mapas (Google Maps)… y así podría seguir. De acuerdo que dejaría de ser tan ligero de peso, aunque en el rendimiento no afectaría apenas (si no lo necesitas, no lo cargues).
- La última versión (1.7.1) vio la luz en febrero de este año. Un largo tiempo sin actualizar, en efecto. Esto puede ser bueno, ya que significa que no hay ningún bug grave que corregir, pero evidentemente también es MUY negativo: gran falta de innovación. Podrían empezar por sacar una 1.8 que arreglara las dos necesidades fundamentales que agregaba arriba.
Afortunadamente, CodeIgniter es fácilmente extensible y podemos arreglarlo fácilmente con clases o librerías que queramos, aunque no deja de ser un mal apaño.
En cualquier caso esto no deja de ser una opinión personal y cualquiera puede estar de acuerdo o no. Hay que tener en cuenta que mi punto de vista con frameworks no está demasiado maduro, y no es por falta de información, si no por experiencia. CodeIgniter me ha dado una buena bienvenida, al igual que a todos los que empezamos a trabajar con él, pero eso no quita que en un futuro elija otro con más posibilidades.
Buena respuesta. Sobre el tema de AJAX incorporado, fácilmente se le puede agregar soporte AJAX con jQuery.
Saludos.
@Julian: en efecto, de hecho, yo lo utilizo así :-)
Uno más en nuestra secta, jeje. CI FTW! :)
http://www.pradosoft.com/ :)
@jaadee000: tiene buena pinta, me pondré a echarle un ojo, gracias!
Rubén, te recomendaría que probases este software. Para que te hagas una idea, esta desarrollado con Code Igniter y su funcion es la de un sistema de hosting tipo Megaupload o Sendspace, obviamente menos complejo, pero en esencia es eso. Tiene muchas cosillas implementadas, hasta un limitador de ancho de banda vía PHP.
Seguro que te viene bien mirar el codigo para la próxima version de Jisko! Un saludo!
Bien… estupendo! xD Te lo he puesto todo menos lo que hacia falta. Dios! Error mio.
Ahí va: http://xtrafile.com/
Ahi te dejo la ultima version (beta):
http://xtrafile.com/files/xtraupload-2/XtraUpload_v2-Beta4.zip
no se si puede servir…. http://www.vertutoriales.com/index.px.php/tag/php/ sirve?
Un framework PHP5 MVC+ORM nuevo, pequeño y simple de usar: http://code.google.com/p/yupp/
ya viste p4a?
KumbiaPHP un framework hispano http://www.kumbiaphp.com.
Esta a punto de salir la beta2, más rápido todavia y como siempre fácil de usar. Y toda la documentación y comunidad en castellano.
Osezno PHP Framework viene con ajax incluido. Es muy facil desarrollar en el. Ideas frescas para desarrolladores nuevos, por que es un poryecto que recien sale a la luz.
:)
http://www.osezno-framework.org
Mira los demos: http://www.osezno-framework.org/application/web/?contid=2
Gracias por tu valoración!
Me interesaría probar el CodeIgniter, pero necesito el módulo auth, lo puedo bajar aparte?
Claro, sin problema. Es bastante extensible.
Hola, personalmente recomiendo a PRADO, encontré en prado un framework que realmente ayuda, sin tener que pagar una curva grande de aprendizaje.
PRADO es sencillo, es fácil y rápido, es para todos los programadores php, y algo muy interesante invita a programadores ASP.net a usarlo pues su modelo es muy parecido al de ASP.net.
En PRADO encontraras un framework para sonar y convidar…
Larga vida PRADO!
500d android Apple Artículos bbva bing Blog c&d campusparty Chorradas cp2009 denuncia diazr ebay ebe eci Eventos glongas google hosting jisko longas macbook madrid meneame microsoft mvc Opinión Personal php plantilla programacion randomness Reflexiones Relatos salud Seguridad theme tuenti tuentid twitter twittmad vida windows yoigo