Diario de un programador PHP. Tecnología y embutidos.

php y Frameworks

Diciembre 11th, 2008 Posted in Php

Hace 1 año y medio inicié mis andaduras en grupos.emagister.com. En ese momento estuve revisando cómo hacerlo. No había hecho ningún proyecto en serio en PHP hasta entonces, así que me puse a intentar aprender.

Tras un buen tiempo mirando tenía la cabeza hecha un lío. Encontre artículos (sobre todo en blogs) argumentando por qué sí usar un framework, por qué no usar framework.
“El desarrollar a lo burro hace que la gente mire a los Phperos como codificadores guarros y que php sea un lenguaje para cosas no serias”.
“Estructurar el código implica perder rendimiento. Haz código a saco que Php va de eso”.

Recuerdo un artículo curioso donde un tío se dedicó a hacer un ejemplo que mostraba “hello word” usando diferentes frameworks. Ejecutaba el test durante 10 minutos y veía tiempos medios de respuesta. Cuando ví esto me entró la risa y decidí probarlo yo mismo, ver si el rendimiento era potable y lanzarme a hacerlo. Hay que tener mucha inconsciencia para publicar eso sin tener en cuenta que :

  • En una aplicación “normal” que hace algo más que decir hola mundo, el grueso del tiempo (del orden del 90% o más) se emplea en entrada y salida (Acceso a BDD, cache, disco, etc), con lo que el tiempo de ejecución del template es poco relevante
  • Los frameworks incorporan muchos, muchos ficheros, conteniendo jerarquías de clases, cargadores de clases. Comparar esto a pelo con un sólo template de 1 linea es insano (piensa en todos esos ficheros leyendose de disco, parseándose, convirtiéndose en un árbol de código intermedio y luego ejecutándose como cientos de lineas de código), a no ser que actives una cosa maravillosa que se llama APC para guardar en memoria los templates precompilados (No os olvideis de activarlo nunca).

Resumen

Pros de usar un framework:

1- heredas un montón de funcionalidades hechas por otros

2-  heredas una forma de trabajar.

3- esta forma de trabajar es compartida con otro grupo de gente (tiempo de aterrizaje de nuevas incorporaciones más corto)

Contras

1- Tienes que conocer el framework, y cuanto más mejor

2- Si implementas MVC o algo así con el framework, debes acostumbrarte a usarlo. Muchos problemas de rendimiento son debidos a no entender muy bien como estructurar la aplicación.

Se le echa en cara a PHP el no tener un framework de referencia como Struts como MVC para java o Rails para Ruby. En Php hay muchos, pero ninguno vencedor.

Ahora resumen de los que miré:

CakePHP. Me gustó pero dió miedo que obligaba demasiado a trabajar a su manera. Esto es bueno, pero al no tener experiencia previa no me atreví.

Ignition. Ligero y rápido. Lo descarté porque lo desarrollaba un sólo tío.

Sinfony. Me pareció un mastodonte, grande y pesado.

Zend Framework. No incorpora en el core una forma de trabajar concreta, sino que és más una librería de funciones.  Me decanté por 2 motivos: No me obligaba a comprometerme mucho y tenía el nombre de Zend.

Al final no me arrepiento de la decisión. La comunidad que lo desarrolla ha trabajado mucho y bien. Cada vez tiene mejor pinta. Sigue sin incorporar una metodología de trabajo (es más como un Pear pero más coherente), pero a mí me ha funcionado muy bien. Sólo pagas el “peaje” de lo que usas.

Así que no hagais spaghetti code, revisad uno de estos frameworks y como poco aprendereis.

  1. One Response to “php y Frameworks”

  2. By Chapi on Dic 23, 2008

    ¿Que tiene que ver esto con los fuets?

Post a Comment