viernes, 2 de noviembre de 2007

Nuevos frameworks están siendo liberados casi cada dos días en la comunidad de PHP. Con más de 40 frameworks disponibles es difícil decidir qué framework funciona mejor, sobre todo porque cada framework ofrece diferentes funcionalidades.

En este artículo vamos a examinar a los diez frameworks mas populares, y compararlos entre sí.

Zend Framework

• Cuenta con módulos para manejar archivos PDF, canales RSS, Web Services (Amazon, Flickr, Yahoo), etc
• El Marco de Zend también incluye objetos de las diferentes bases de datos, por lo que es extremadamente simple para consultar su base de datos, sin tener que escribir ningúna consulta SQL.
• Una solución para el acceso a base de datos que balancea el ORM con eficiencia y simplicidad. Podemos ver esta función en el futuro.
• Un poderoso framework MVC.
• Completa documentación y tests de alta calidad.
• Soporte avanzado para i18n.
• Un buscador compatible con Lucene.
• Robustas clases para autentificación y filtrado de entrada.
• Clientes para servicios web, incluídos Google Data APIs y StrikeIron.
• Muchas otras clases útiles para hacerlo tan productivo como sea posible.

CakePHP

• CakePHP es principalmente el mas avanzado framework MVC, con algunos módulos añadidos en la parte superior.
• Se puede manejar la mayoría de material del proyecto a desarrollar, y que incluye el soporte a Ajax y validación de datos.
• También cuenta con un módulo de autenticación de usuario único llamado 'Access Lists', que se puede utilizar para dar acceso a los diferentes usuarios de diferentes partes de su sitio web con CakePHP.
• Scaffolding de las aplicaciones
• Componentes de seguridad y sesión
• CRUD de la base de datos integrado
• Sistema de plantillas rápido y flexible

Symfony Project

• Proyecto de Symfony es un framework muy amplio, e incluye un verdadero ORM, de nombre Propel, que es otro proyecto de código abierto y, probablemente, una de las mejores soluciones ORM para PHP.
• Incluye Creole para la capa de abstracción de base de datos y Mojavi para la capa Model-View-Controller.
• La mayoría de las tareas, como la de paginación, son mucho más complicados en Symfony que en otros marcos, y la simplicidad definitivamente no es una cualidad de este marco.
• Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo

Seagull Framework

• El framework Seagull es un muy bueno, y viene con una gran cantidad de características.
• Por desgracia, no vienen con ningún soporte para Ajax. Pero es probable que se añadá en el futuro.


WACT - Web Application Toolkit

• WACT tiene las cosas básicas de necesarias de un framework, como MVC, objetos de la base de datos y un motor de plantillas.
• No tiene módulos adicionales, y definitivamente carece de algunas cosas importantes, como Ajax, almacenamiento en caché, un módulo de autenticación y más.
• WACT tiene uno de los mejores motores de la plantilla aunque, y que incluso le permite crear sus propios códigos de plantilla para añadir cierta funcionalidad.

Prado

• Prado es un framework muy singular, y que ofrece algunas características muy interesantes. No viene con soporte incorporado para MVC, pero tiene todo tipo de componentes para manejar la mayoría de las tareas habituales de PHP.
• Toma acontecimiento impulsado por los scripts. Por ejemplo, es posible poner un evento OnClick sobre un botón en HTML que vincula a una función de PHP. Esto se asemeja ASP.NET, y ASP.NET Prado contiene más componentes, como un GridView y un Repeater Control.

PHP on Trax

• Este framework parece ser un puerto de PHP sobre Ruby on Rails, y es usado para llamarlo en PHP sobre rails.
• Lamentablemente la documentación es bastante escasa, por lo que es difícil de determinar lo que ofrece este framework, pero su documentación hacen mención de ActiveRecord, por lo que probablemente las ofertas ActiveRecord, al igual que RoR.
• Otra cosa es que incluye soporte incorporado para Ajax.
• PHP on Trax le faltan algunas cosas, como un módulo de autenticación y un módulo de almacenamiento en caché. No tiene módulos adicionales, ya sea, por lo que es un todo en uno en este momento.

ZooP Framework

• El ZooP Framework es realmente de caracteristicas enpacadas, que soporta casi cualquier cosa, salvo por una capa ORM. .
• Otra cosa ZooP, ofrece controles GUI, lo que facilita la creación de formularios rápidamente. Soporta la mayoría de los elementos básicos de un formulario, y la ventaja de usar los controles de GUI de HTML es que puede integrar perfectamente con la lógica de validación de los controles GUI.

eZ Components

• eZ Componentes no es tanto un framework, sino más bien de una colección de componentes, y esa es probablemente la razón por la que no viene con soporte incorporado para el MVC.
• Viene con la mayoría de los componentes habituales, como componente de base de datos y un componente de caché.
• No tiene un componenete ActiveRecord o un componente de autenticación.
• Tiene algunos otros componentes adicionales, como un componente de correo electrónico, pero no hay muchos, y otros marcos (como el Zend Framework) ofrecen más.

CodeIgniter

• CodeIgniter es relativamente un nuevo framework, por los fabricantes de ExpressionEngine, y parece muy prometedor.
• Por desgracia, no maneja múltiples bases de datos, sin embargo, a pesar de eso se esta trabajando mucho para mejorarlo.
• Está inspirado en Ruby on Rails, y que ofrece una gran parte de la misma funcionalidad, como los scaffolding.
• Tiene una excelente documentación, y se han incluido vídeotutoriales y asi se seguira.

Conclusión

Además de las características mencionadas para cada framework, todos los frameworks antes mencionados son compatibles con PHP5. CakePHP, Seagull, WACT, ZOOP y CodeIgniter pueden ejecutarse en PHP4. El framework Prado y el eZ Components no soportan MVC. Todos los frameworks soportan múltiples bases de datos y objetos DB, además de que Prado no soporta objetos DB. No se admite el almacenamiento en caché por WACT y PHP on TRAX.

Cada marco ofrece diferentes funcionalidades; Elegir una de acuerdo a sus requerimientos.

Preguntas, comentarios, sugerencias???...

Via: phphacks
Fuente: phpit.net

6 comentarios :

  1. Anónimo dijo...

    Hace tiempo,yo me vi en la tarea de buscar un framework, y despues de mucho indagar,me decidi por code igniter, encerio, este framework es genial para comenzar desde cero, es facil e intuitivo, sobretodo si tienes un poco de conocimiento sobre POO y ademas de que este framework no se tiene que instalar =)

    saludos, exelente post, felicidades

  2. Anónimo dijo...

    Varios comentarios, todos ellos sin ganas de crear polémica sino con afán 100% constructivo:

    1) Si un artículo es una traducción de otro conviene indicarlo y enlazarlo expresamente ("via" no indica eso).

    2) El artículo de PHP Hacks tiene fecha de Noviembre de 2006. Esto, y más si hablamos de algo que evoluciona tan rápidamente como los frameworks de desarrollo web, hace que sea completamente obsoleto.

    3) En uno de los comentarios del artículo de phphacks indican claramente que tampoco es la fuente original, que en realidad es http://www.phpit.net/article/ten-different-php-frameworks/1/

    También indican claramente que el artículo original está aún más desfasado (Marzo de 2006) y que está lleno de datos inexactos.

    Por todo esto, siento decir que este artículo contribuye a extender información errónea y obsoleta, lo que puede perjudicar por un lado a los usuarios que la utilicen para decidir qué framework utilizar y por otro a los desarrolladores de los frameworks que salen peor parados en el artículo :(

    Sugiero incluir alguna nota aclaratoria para que nadie se llame a error, y contrastar un poco la información antes de difundirla.

    Un saludo.

  3. Miguel dijo...

    Es verdad lo que has comentado Raul, lo he enlazado como Via, debido a que fue precisamente a traves de phphacks que lei el articulo.

    Pero a fin de comparacion y precisamente estos frameworks son los que aun siguen estando en la punta de la lista, y realice el post sin desconocer ninguno de los puntos que has aclarado.

    Un saludo.

  4. Anónimo dijo...

    por supuesto que es una lista desactualizada, pero aun asi no deja de ser una comparacion entre frameworks, ya que la mayoria de ellos aun mantienen las mismas caracteristicas e idea principal que listan aqui, ya que ese era el proposito de sus desarrollores.

  5. phpleo dijo...

    Yo estoy totalmente de acuerdo con el Sr. Raul Murciano en que este tema esta totalmente desactualizado por que muchos de estos han evolucionado, en especial symfony ( http://www.symfony-project.com/ ) que no en vano Yahoo lo esta utilizando para desarrollar sus aplicaciones entre ellas la nueva versión de del.icio.us

    Algo que tampoco mensionas en Symfony es sobre su documentación que es la mas completas de todas y que está traducida en muchos idiomas incluido el español.

    Salu2 ^^

  6. Brutal Server dijo...

    Buen post, solo decir que Code Igniter si soporta multiples base de datos, e incluso se pueden tener distintas bd en una misma aplicacion.

    Saludos.