Symfony El Framework PHP por excelencia
Hace ya varios años que me dedico a programar con PHP, Javascript y XML por lo que he probado muchos Frameworks de desarrollo, pero puedo afirmar que Symfony es el mejor de todos. Basado en el patrón de arquitectura MVC (model-viewer-controller), con integración 100% funcional con AJAX, generadores administrativos, aplicación CLI para el desarrollo de nuevos Proyectos (como también para aplicaciones y módulos), plantillas webs, posibilidad de utilización de cache y muchas cosas más que voy a detallar más adelante.
Que es Symfony?
Symfony es un Framework de desarrollo de aplicaciones Web para proyectos en PHP5. La utilización de Frameworks siempre es mejor ya que permite crear aplicaciones mucho más rápido, mucho más eficaces, más seguras y facilmente actualizables.
Lo único que se necesita para instalar Symfony es un servidor con Unix, Linux o Windows y tener instalado PHP5. Cabe destacar que posee clases para poder conectarse a cualquier motor de base de datos, MySQL, SQL Server, PostGres, …
Symfony está pensado para grandes proyectos Empresariales, desarrollado para crear aplicaciones robustas. Esto quiere decir que tenés un completo control sobre la configuración del sitio: desde la estructura de archivos hasta la creación de nuevos roles de usuarios, todo definido en sistemas de archivos XML. También se caracteriza por tener la posibilidad de ejecutar las aplicaciones desarrollas en diferentes fases (Producción, Debug, Staging, etc) por lo que podrás testearla de muchas maneras y entregar un producto prácticamente irrompible.
Al estar orientado a aplicaciones Empresariales, permite diseñar Casos de Prueba para correrlos bajo procesos Batch o de manera individual y ver los resultados de las pruebas bajo una consola. Y como si fuera poco, también trae soporte nativo para phpDocumentor, una aplicación para realizar la documentación del sitio que estás desarrollando.
Hay que destacar la gran documentación que posee Symfony, nunca te vas a quedar con una duda porque está todo (realmente todo) documentado. Y si tu duda no aparece, aunque no lo creo, tenés el foro para realizar todas las preguntas que quieras.
Voy a nombrar un poco las caracterÃsticas a destacar de este Framework, asà queda un resumen de su potencia:
- MetodologÃa de desarrollo MVC
- Enfoque de desarrollo Empresarial (aplicaciones robustas)
- Capacidad de implementación de Cache mediante archivos o base de datos
- Dirección URL amistosa (esconde la infraestructura lo cual lo hace más seguro)
- Scaffolding (los métodos de ABMC de una clase)
- Multilenguaje y soporte de I18N
- Soporte para AJAX
- Permite realizar Casos de Prueba
- Desarrollo mediante CLI Interface (init-project, init-ap, init-module, …)
- Helpers por doquier (Forms, HTML, JS, …)
- Soporte para phpDocumentor, documenta tus aplicaciones
- Capacidad de crear roles de usuario y credenciales
- Routing, para definir como se ejecuta la aplicación
- La integración de Plugins mejora su escalabilidad
- Sistema avanzado de monitoreo del comportamiento de la aplicación (LOG)
- Compatible con prácticas Webs y Patrones
- Es Open-Source
- y muchas cosas más que realmente son impresionantes!
Si tu idea es empezar a probar algún Framework, empezá y terminá con este, porque es el mejor de todos! Supera ampliamente a CakePHP, Kumbia, y cualquier otro que le haga frente. Doy mi opinión después de haber probado a más de 10 Frameworks PHP, y aclaro que no trabajo para Symfony
El sitio oficial es Symfony y te recomiendo que hagas los cursos de Askeet para empezar a probar el framework.
9 Respuestas to “Symfony El Framework PHP por excelencia”
Por David el Feb 22, 2008 | Responder
Excelente análisis, pero MVC no es una metodologÃa de desarrollo, sólo es un patrón de arquitectura de software. Cuidado con los términos.
Por dotBlog el Feb 22, 2008 | Responder
Gracias por el comentario y la corrección David. Ya actualizé el Post
Por Jorge el Mar 19, 2008 | Responder
Hola… Te escribo pues estoy revisando varios frameworks buscando un detalle que aun no veo en la implementacion de ninguno y tal vez me puedas ayudar…
Deseo saber como es que se hace para que los parametros de las clases controladoras sean mapeados como variables en las vistas asociadas a estas clases….en la documentacion lo dicen, en la de varios frameworks incluso, pero no dicen como es que lo hacen.
Si sabes como me gustarÃa que me explicaras.
Saludos,
Jorge
P.D: me escribes a mi direccion.
Por dotBlog el Mar 19, 2008 | Responder
@jorge a ver si entendÃ, quieres mostrar los parametros que se envian al controlador desde una vista? Algo asi como $this-> pero desde el view?
Por Jorge el Mar 19, 2008 | Responder
bueno por lo que he visto en los frameworks, se define en el controlador un atributo de la clase asi: $this->nombre = ‘pepe’;
y en la vista se puede hacer esto sin incluir nada mas:
mi inquietud es saber como es que se logra hacer esto, pues todo el mundo dice que lo hace pero no explican como.
saludos y gracias por responder…
Por dotBlog el Mar 19, 2008 | Responder
Por lo que tengo entendido, los valores que estan en el controlador solo pueden ser leidos mediante un get, es decir por ej. getNombre()
Los valores pasados como parametros existen unicamente en el controlador y despues se destruyen. Lo que puedes usar es la variable de Symfony para almacenar datos que se llama sfConfig
sfConfig::add(’nombre’ => ‘pepe’); para agregar
sfConfig::get(’nombre’); para recuperar
y todos los valores que almacenes ahi, van a ser leidos desde cualquier parte (vista o controlador)
Por Jorge el Mar 19, 2008 | Responder
si eso lo vi ayer, se que existe un conjunto de objetos que permiten manipular informacion global, pero como ves en el ejemplo que te puse no se usa ningun ejemplo..se hace asi y funciona, y lo que quiero saber es como lo hacen sin usar esas variables…. si quieres compruebalo cuando tengas un tiempo para que veas que es asi sin usar esas variables, al menos en el paso de informacion desde el controlador para la vista, mapeo de atributos del controlador a variables de la vista….