La elección de Symfony para la mayoría de nuestros desarrollos fue una decisión muy meditada y con el tiempo nos hemos ratificado en la elección.
Symfony ofrece herramientas profesionales de máxima calidad, siguiendo las mejores prácticas web, disponibles por defecto. Es suficientemente flexible como para añadir nuevos componentes o eliminar otros. Se trata por lo tanto de automatizar las tareas más comunes, sin reinventar la rueda cada vez.
Entre las carecterísticas específicas podemos destacar:
Admin generator o generador de administradores
Siguiendo el modelo de datos definido, se crean estructuras CRUD (Create, Read, Update, Delete) sobre los modelos del sistema, además de añadir una serie de funcionalidades útiles a la interfaz, como filtros, paginación, ordenación de resultados, entre otras. Una vez generado el administrador, se puede customizar fácilmente.
Sistema de rutas
Las rutas definen URLs, que hacen que la aplicación responda a ciertas acciones en base a ello. Esto permite configurar a medida las URLs sin necesidad de modificar nada en Apache.
Patrón MVC
Separación en tre el modelo de datos, las vistas de interfaces y el controlador de la aplicación que redirige las peticiones dentro de la aplicación. Es fácil por lo tanto separar el trabajo de diseño y programación y los componentes asociados a cada capa.
Formularios
Un formulario, con sus distintos tipos de campos, se comporta siempre igual. Hay un envío de datos normalizados, una valizadión y un resultado. Con Symfony es extremadamente rápido configurarlos, teniendo la posibilidad de añadir Widgets y otras estructuras que podemos reutilizar.
Debugging Toolbar
¿Cuántas y qué queries se realizan en la página? ¿Cuanto tiempo se tarda en cada parte? ¿Qué variables se están utilizando? A toda esta información se puede acceder directamente desde una aplicación de depuración en la propia página. En segundos podemos optimizar bastantes aspectos de la aplicación.
Cache
Hay varios niveles de cache internos en la aplicación. Además, existen drivers para herramientas como memcached, que reducen drásticamente el consumo de recursos de las aplicaciones web.
Soporte y Comunidad
Detrás de todo está Sensio Labs, una Compañía de desarrollo web donde nació el proyecto. Hay una gran comunidad de desarrolladores y existen herramientas de soporte realmente activas.
Son sólo agunas de las características que más utilizamos del framework. Existen muchas más como internacionalización, tests unitarios y funcionales, gestión de correos, etc… que hacen de Symfony un gran Framework de Desarrollo Web.