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.
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
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.
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.
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 ;).
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
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.
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
Saludos, el Zend framework es un framework de caracteristicas robustas para aplicaciones web de una envergadura mayor como web services mayormente.
yii es muy robusto, agil y facil y tiene todo lo necesario en Ingenieria de Software.