martes, 12 de abril de 2011

¿Cuál es el mejor framework PHP?

Debido a la aparición de los frameworks tanto en el ambiente .net como en el ambiente de php, decidí aprender algunos con el fin de conocer lo que realmente es un framework así como también conocer sus ventajas , desventajas y características.

Por definición(wikipedia-Framework): un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Particularmente con PHP: Me aprendí 3 frameworks como CAKEPHP, ZEND FRAMEWORK, CODEIGNITER.

Cuando decides aprender los framework, se supone que conociste el lenguaje php en su estado mas puro(sin framework), y esto me sucedío a mí. 

A partir de ello puedo decir, que  cakephp es un excelente framework. EL mismo tiene una consola de adminsitración que permite generar tanto modelos, controladores y vistas, y control de acceso ACL. Es decir, que a partir de un esquema físico de base de datos es posible generar CRUD de la aplicación y en muy pocos minutos tener una aplicación funcional. Una de las desventajas que tiene este framework o que almenos a mí no me gusto, es que el esquema físico de la base de datos debe construirse con ciertas nomenclaturas, así como los controladores y modelos. Me pasó que queria desarrollar una función, y siguiendo la nomenclatura de cake me costo muchisimo, y sentí que el mismo no me estaba ayudando para los desarrollos que yo necesitaba en particular. Por ello búsque otros frameworks.

Aquí aparecen zend framework o codeigniter, para resumir, estos dos frameworks son excelentes permiten programar aplicaciones web en php con una claridad y simplicidad. Tienen una gran cantidad de librerias , helper, es pocas palabras componentes de código que te ayuda a desarrollar mucho mas rápido, tanto de desde realizar acción sobre motores de base de datos como válidación de la entrada, etc. Son dos frameworks particularmente parecidos a pesar de que su sintaxis cambia levemente(no olvidar que sigue siendo php). La úninca desventaja o límitación que encontré son los formularios generados automaticamente con zend framework, son límitados en cuanto a diseño, asi como también el marcado, particularmente prefiero evitarlos. Estos formularios automáticos es solo una funcionalidad, y también es posible construirlo a partir del marcado html de cada uno de los controles. Vale mencionar que en estos frame... no existe la consola gloriosa que existe en cakephp, algo muy destacable.

En resumén si se aprenden zend o codeigniter, seguro les cambiará la forma de desarrollar.
Y ahora que me puedes decir vos sobre cual es el mejor framework.






9 comentarios:

  1. Estoy hace una semana tratando de escoger un framework para empezar a desarrollar un proyecto personal, ya pase por los famosos, y en todos me quede en que ya tengo la base de datos y ninguno tiene una opcion decente para generar los modelos; a esto sumele que cuando se tienen los modelos se tiene que construir los controladores... entonces que carajos construye el framework? para una estructura de carpetas estan los scripts, y para las librerias estan los includes, un ejemplo con zend:
    http://framework.zend.com/manual/en/learning.quickstart.create-model.html

    y eso era el quick start... todos los frameworks funcionan parecido, symfony me dio la opcion de generarlas a partir de un yaml pero al final nunca encontro los pdo en linux por mas que los configuré...

    ahora llevo 1 semana en prueba y error a ver con cual me quedo, con el que arranque quien sabe cuanto me demoraré si me toca investigar como hacer todo en el framework...

    Definitivamente los frameworks no son para proyectos sencillos o rapidos (asi usen esos proyectos como ejemplos por lo sencillo que son)... son para proyectos que sabes que van a crecer en modularidad y funcionalidad...

    ResponderEliminar
    Respuestas
    1. Hola, estoy de acuerdo

      Por esa y otras razones decidí construir uno, esta en etapa de desarrollo pero creo que va a quedar bien. Si te interesa puedes ver mi blog.

      Saludos cordiales.

      http://velkanphp.blogspot.com/?m=1

      Eliminar
  2. Para mi los framework, viene a organizar y estructurar los proyectos de desarrollo. Nadie dice que los frameworks te desarrollan la aplicación como lo haria Genexus(aunque cakephp logra una gran automatización de la aplicación). Si uno desarrollo en php sin framework, y usas la libreria zend. Seguro llegaras a alcanzar un producto software que funcione tan bien como lo haria un proyecto construido bajo un framework php. La diferencia esta cuando otra persona quiere leer tú codigo, seguir la lineas del mismo. Allí se vuelve complicado. Además un framework php, busca ofrecer un conjunto de funciones que hace mas simple o más rápido el desarrollo.

    El framework php es una filosofia de trabajo, y tiene mucho que ver como uno desea trabajar. Recomiendo ampliamente los framework, no vuelvo más a php puro.

    ResponderEliminar
  3. El mejor framework no está nombrado en este post que és Symfony2, al menos a mi parecer.


    daviunx.es/knowledge
    Iré escribiendo tutoriales de Symfony2.

    ResponderEliminar
  4. Ay no mamen io probe todos y son una porquería, para buenos ruby on rails ups maravilla! y de php el unico q me convencio aunque se pasa de flexible y hay muchos puercos para programar fue Codeigniter por excelencia:
    - Limpio
    - Carga lo que necesitas
    - URL amigables
    - crud en minutos con grocery crud

    ResponderEliminar
  5. Yo uso Codeigniter hace ya algun tiempo y presisamente el que no existan consolas como las de zend es lo que me parece fabuloso, es muy parecido a desarrollar directamente en php, es mas muchas de las librerias que tiene no las utilizo mucho, he construido las mias propias o las he importado de proyectos previos y funcionan ATM

    Saludos...

    ResponderEliminar
  6. Estoy nuevo en php, conozco lo básico.. Y hasta ahora me ha ido bastante bien en código plano... Lo que me preocupa es que estoy en aras de construir empresa, y a medida que consiga nuevos proyectos la entrega de estos deberá ser rápida... Para eso quiero implementar un framework, he tratado con symfony2, Pero la documentación no es muy completa, o por lo menos a mi parecer.. Me cuesta bastante trabajo el hacer cosas que en código plano son muy sencillas, como auto completar campos, en Symfony2 es realmente jodido!...

    Me pueden recomendar un framework para empezar a introducirme en este mundo de no reinventar la rueda ???
    De antemano Mil gracias!

    ResponderEliminar