Date agosto 11th, 2009

I Love CodeigniterReconozco 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.

  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • HelloTxt
  • Tumblr
  • Twitter
  • email
  • LinkedIn
  • Netvibes
  • Posterous
Hay 15 comentarios
  • Avatar
    agosto 11th, 2009 @ 3:31 pm Reply to this comment

    Buena respuesta. Sobre el tema de AJAX incorporado, fácilmente se le puede agregar soporte AJAX con jQuery.
    Saludos.

  • Avatar
    Rubén Díaz
    agosto 11th, 2009 @ 3:34 pm Reply to this comment

    @Julian: en efecto, de hecho, yo lo utilizo así :-)

  • Avatar
    agosto 11th, 2009 @ 5:06 pm Reply to this comment

    Uno más en nuestra secta, jeje. CI FTW! :)

  • Avatar
    agosto 11th, 2009 @ 8:59 pm Reply to this comment
  • Avatar
    Rubén Díaz
    agosto 12th, 2009 @ 4:06 pm Reply to this comment

    @jaadee000: tiene buena pinta, me pondré a echarle un ojo, gracias!

  • Avatar
    agosto 25th, 2009 @ 11:07 pm Reply to this comment

    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!

  • Avatar
    agosto 25th, 2009 @ 11:09 pm Reply to this comment

    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

  • Avatar
    junio 24th, 2010 @ 4:53 am Reply to this comment
  • Avatar
    julio 1st, 2010 @ 3:53 am Reply to this comment

    Un framework PHP5 MVC+ORM nuevo, pequeño y simple de usar: http://code.google.com/p/yupp/

  • Avatar
    enero 5th, 2011 @ 10:25 pm Reply to this comment

    ya viste p4a?

  • Avatar
    abril 14th, 2011 @ 11:58 pm Reply to this comment

    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.

  • Avatar
    julio 27th, 2011 @ 5:18 pm Reply to this comment

    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!

  • Avatar
    EzE
    septiembre 13th, 2011 @ 4:54 pm Reply to this comment

    Me interesaría probar el CodeIgniter, pero necesito el módulo auth, lo puedo bajar aparte?

  • Avatar
    Rubén Díaz
    septiembre 15th, 2011 @ 6:10 am Reply to this comment

    Claro, sin problema. Es bastante extensible.

  • Avatar
    noviembre 15th, 2011 @ 7:53 pm Reply to this comment

    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!

Todos los comentarios enviados pasan antes por una moderación previa. Esto no significa en ningún caso que tu opinión sea censurada, excepto si únicamente se fundamenta en el insulto gratuito o no aporta nada a la discusión. Por favor, sé coherente antes de teclear, todos te lo agradeceremos :-)

Nombre (requerido)

Mail (requerido)

Sitio web