Comparación y Rendimiento de Frameworks PHP

Hace unos años atrás se publico un artículo en phpti.net en la que hacían una comparación de los frameworks para PHP, desde esa fecha a la actualidad dichos frameworks han evolucionado y han mejorado considerablemente.

Hoy me entero a través de el blog de symfony en español, de un nuevo estudio realizado por Clever Age sobre los frameworks mas usados en PHP, titulado “Libro blanco sobre frameworks PHP para empresas”, donde se realiza un exhaustivo estudio de todas funcionalidades de dichos frameworks, mostrando los puntos fuertes y débiles de cada uno.

Dicho documento se encuentra en francés y lo pueden solicitar totalmente gratis desde este link, es necesario que coloquen su mail para recibir el pdf.

Para los que no pueden entender el francés, traduje la parte 9, que trata sobre “Evaluación por el método de QSOs (Qualification and Selection of Open Source software)” el cual me pareció que resume muy bien todo lo tratado en el libro.

El método QSOs se centra en los criterios para estimar los riesgos incurridos por un usuario al usar un software.

Para cada función, la regla de notación es el siguiente:

  • 0 si la funcionalidad no está cubierto,
  • 1 si la función está parcialmente cubierto,
  • 2 si la función está completamente cubierto.
Durabilidad Intrínseca
Cake PHP Symfony Zend
Framework
Code Igniter
Madurez
Edad 1
Fecha de
salida:
2005
1
Fecha de
salida:
2005
1
Fecha de
salida:
2007
1
Fecha de
salida:
2006
Estabilidad 2
La versión
estable
1,19
2
La versión
estable
1,0
2
La versión
estable 1,0
2
La versión estable 1,6
Historial de
Bugs y problemas
conocidos
2 2 2 2
Historial de bugs y errores disponible en el sitio de cada Framework
Probabilidad de bifurcación (fork), fuente de bifurcación 2 1
Symfony es un
FORK de Mojavi2
2 0
Kohana es un
FORK
Adopción
Popularidad 2 2 2 1
Referencias 2
Muchas referencias
y extensiones en Mozilla
2
Muchas referencias de (Yahoo, etc) .. cf. http://
symfonians.net/
applications/
2
muchos referencias de (IBM, Nokia, etc) cf. http://
framework.zend.com/
comunidad/
aplicaciones/
1
Unos
Referencias
e Emmaus.
uk
Contribución de la Comunidad 2
La comunidad es activa en
foros dedicados,
grupos de Google y blogs
2
La comunidad
es importante
y activa en
foros dedicados
blogs y
grupos de Google
2
La comunidad
es importante
y activa en
foros dedicados y
blogs
2
La comunidad
está activo en
foros dedicados
Publicaciones 1
Publicación de un libro
en Inglés
CakePHP Recipes
1
Publicación de un libro en inglés “The Definitive Guide to Symfony”
1
Publicación de libros
en Inglés
” Architect’s Guide
to Programming
with Zend
Framework” y
Zend Framework
in action “
0
Ningún libro publicado
Liderazgo de Desarrollo
Líder del Grupo 1
Larry E.Masters y otros 4
1
Fabien Potencier
de
Sensio Labs
1
Dirección del equipo
de Zend
Technologies
1
Dirección del equipo
de EllisLab
Estilo de Dirección 1
Una persona
1
Una persona
2
Grupo de Personas
1
Una persona
Actividad
Número de Desarrolladores identificados, turnover 2
Una docena de personas
2
Unas cincuentas personas
2
Unas cincuentas personas
0
No hay información
Actividad en los errores (bugs) 2
Seguimiento de bugs
está disponible
a través de un trac Wiki
2
Un foro y un activo
seguimiento de bugs
disponible a través de un trac Wiki
2
Seguimiento de bugs
disponible
por
un wiki dedicado
2
Seguimiento de bugs
accesibles a través de
la página Bugtracker
Actividad en las funcionalidades y características 1
La evolución del producto está en
el
enfoque del
equipo de
desarrolladores
2
Una sección de foro dedicada
a la demanda
nuevas
características
2
Una página IssueTracker Orientada y
dedicada
a la demanda
nuevas
características
2
Una sección de foro dedicada
a la demanda
nuevas
características
Actividad de las versiones 2
Versión en curso 1.2
2
Versión en curso 1.1
2
Versión en curso 1.5
2
Versión reciente 1.6
Independencia de los desarrollos
Independencia de los desarrollos 1 1 1 1
Solución Industrial
Cake PHP Symfony Zend
Framework
Code Igniter
Servicios
Formación y/o Entrenamiento 0
Ninguna oferta de formación está disponible para este framework
2
Anaska
, Sqli o Clever Age por ejemplo son algunos que proveen formación para Symfony
2
Zend
y Anaska son por ejemplo algunos proveedores, que proponen una formación en Zend Framework
0
Ninguna oferta de formación está disponible para este framework
Soporte 0
No ofrecen mas apoyo que
foros, listas de correo
y Google
Grupos.
2
Varias ofertas existentes (Clever Age, Sensio, etc), foros, mailinglists y Google Groups
1
Zend technologies ofrece un soporte para este framework vía su red
0
Ninguna oferta de soporte excepto los foros y listas de correo
Consejos No Aplicable No aplicable No Aplicable No Aplicable
Documentación
Documentación 2
Documentación presentada bajo la forma de un manual accesible únicamente en línea
2
Ddocumentación importante presentada bajo la forma de un manual disponible en línea y en libro
2
Documentación detallada presentada bajo la forma de un guía de referencia disponible y descargable en línea
2
Documentación presentada bajo la forma de un guía accesible en línea y descargable con el framework
Métodos de Calidad
Métodos de Calidad 1 2 2 1
Herramientas 1 2 2 1
Paquetes (Packaging)
Source 1 1 1 1
Debian 2 2 2 1
No hay paquetes Disponibles
Paquetes disponibles en Debian
FreeBSD 1 1 1 1
HP-UX 1 1 1 1
Mac OS X 1 1 1 1
Mandriva 1 1 1 1
NetBSD 1 1 1 1
OpenBSD 1 1 1 1
RedHat/Fedora 1 1 1 1
Solaris 1 1 1 1
SuSE 1 1 1 1
Windows 1 1 1 1
Operatividad
Facilidad de uso,
ergonomía
No aplicable No aplicable No aplicable No aplicable
Administración / Supervisión No aplicable No aplicable No aplicable No aplicable
Técnicas de Adaptabilidad
Cake PHP Symfony Zend
Framework
Code Igniter
Modularidad
Modulardad 1 2
plugins
2
extensiones
1
Sub Productos
Facilidad de modificación del código existente 2 2 2 2
Facilidad de extensión del código 2
Posibilidad de utilizar componentes, modelos y plugins adicionales
2
Posibilidad
de utilizar plugins
2
Posibilidad de utilizar extensiones
2
Posibilidad
de
agregar plugins
Estrategia
Cake PHP Symfony Zend
Framework
Code Igniter
Licencia
Permisividad 2
Licence MIT
2
Licence MIT
2
New Licence
BSD
2
Licence MIT
Protección contra los forks comercial 0
Ninguna protección
por definición de la licencia MIT
0
Ninguna protección
por definición de la licencia MIT
0
Ninguna protección
por definición de la licencia BSD
0
Ninguna protección
por definición de la licencia MIT
Copyright propietarios
Copyright
propietarios
1 1 1 1
Roadmap
Roadmap 1
Existencia de un roadmap sin planificación provisional
1
Existencia de un roadmap sin planificación provisional
1
Existencia de un roadmap sin planificación
0
Ningún roadmap publicado
Sponsor
Sponsor 1
Patrocinador único:
Cake Development
corp.
1
Patrocinador único:
Sensio Labs
1
Patrocinador único:
Zend technologies
1
Patrocinador único;
EllisLabs
Independencia estratégica
Independencia estratégica 1 1 0 1

Expresada en porcentaje de puntuación máxima alcanzable, se muestra la repartición de las notas de estos 4 frameworks según las categorías analizadas:

Cake PHP Symfony Zend Framework Code Igniter
Durabilidad 80,00% 80,00% 90,00% 63,33%
Solución industrializada 50,00% 67,65% 64,71% 47,06%
Adaptabilidad 83,33% 100,00% 100,00% 83,33%
Estrategia 50,00% 50,00% 41,67% 41,67%
Media 65,83% 74,41% 74,10% 58,85%

Otra presentación en la forma de un gráfico de radar:

Conclusiones
Pienso que los datos de este estudio no son totalmente concluyentes puesto que cada framework esta en evolución y pude cambiar en el transcurso del tiempo, pero nos pude ayudar grandemente a tomar una mejor decisión al momento de querer embarcarnos en un nuevo proyecto en PHP.

benjamin
Me llamo Benjamín Gonzales B, soy desarrollador de software con más de 15 años de experiencia, socio funduador de la empresa GNBIT. Me apasiona todo lo relacionado a las nuevas tecnologías, me gusta investigar , leer y aprender cada día algo nuevo. Desarrollo en PHP7+, JAVA, C#, JavaScript, entre otros y actualmente  estoy experimentando con lenguajes funcionales como: Erlang, Clojure y Scala 

9 Comments

  1. Es claro que Zend es la mejor opcion. Pero hay algo que me parecio desacertado. Zend Framework tiene la particularidad de ser completamente orientado a Objetos, y el uso de Patrones para los problemas comunes, hacen que su codigo sea muchisimo mas facil de entender que el del resto de los frameworks

  2. Pablo, cuando dices “es claro que Zend es la mejor opción”, me temo que no has visto que el framework que resulta ganador del estudio comparativo es Symfony con el 74,41%, frente al 74,10% de Zend.

    Por otra parte, que Zend esté completamente orientado a objetos no es una “particularidad”, sino una característica que comparte con muchos otros frameworks, como por ejemplo Symfony.

    De hecho, Symfony jamás ha funcionado con PHP4, porque sus creadores decidieron que su framework debería tener el mejor código y aprovechar PHP al máximo…y por eso sólo funciona con PHP5.

    Por último, el uso de patrones también es una característica que comparten muchos otros frameworks, como por ejemplo Symfony.

  3. Javier es un gusto tenerte por aquí.

    Hasta el momento Symfony sigue liderando el mundo de los frameworks PHP, seguido muy de cerca por Zend Framewok, así que la batalla será entre estos 2 grandes.

  4. Hola Benjamín,
    primero que nada felicitarte por el blog esta muy bueno.
    Hace un tiempo trabaje en IspGraf haciendo AS2, buenos tiempos aquellos hablando de muchos temas informáticos.

    No me quiero salir del tema, yo tengo conocidos que han manejado los 4 frameworks que muestra este estudio y los 4 son muy buenos, pero si me tengo que inclinar por uno le voy a Symfony, cuando lo probe (muy poco), se parecía mucho al lenguaje Ruby, super automatizado, eso desde ya me pareció muy practico.

    La gran ventaja que tiene el ZendFramework es su soporte por la gente de Zend y su propia IDE que explota muy bien sus recursos. Para los otros frameworks tendría que escoger entre el NuSphere PhpED (de pago) o el Aptana (Gratuito pero consume muchos recursos pero vale la pena) para usar el autocompletado de código de las clases y demás cosas que ofrecen cada frameworks.

    Otro factor importante para empezar a usar cualquier framework es conocer los Patrones de Diseño para no sufrir ningún shock al inicio 🙂 .

    Un saludo, estaré siguiendo el blog ;).

  5. He probado symfony y Zend la verdad despues de un tiempo que le he dedicado me quedo con Zend es mas facil de adaptarse, desde su instalcion es mas sencilla y de igual forma como symfony maneja MVC Zend hace lo mismo y al ser los creadores de PHP yo creo que esto garantiza su desarrollo.
    Alguien me puede argumentar algo mejor y hacerme escoger symfony?

    Saludos
    JUCA

  6. En definitiva lo más importante no esta publicado, el benchmark entre estos, la curva de aprendizaje…
    Obviamete este estudio es poco serio dado que se trata de dar por ganador en aspectos que sobresale uno sobre otros.

  7. Yo soy nuevo en el tema de los frameworks pero este blog me ha motivado a utilizar el Symphony.

    Mi pregunta es con las licencias involucradas tanto en symphony como en los subproyectos integrados a este framework tales como propel, yaml, etc.

    Puede uno con urilizar Symphony y librerias integradas para desarrollar una apicación propietaria u ofrecer un servicio que tenga costo?

    Me perdonan si este no es el post pero es el mas cercano que he encontrado.

    Gracias

    Campo

  8. Saludos, el Zend framework es un framework de caracteristicas robustas para aplicaciones web de una envergadura mayor como web services mayormente.

Leave a Comment

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.