Symfony

Symfony
Información sobre la plantilla
Parte de la familia Framework PHP
Symfony-logo.png
DesarrolladorSensiolabs
Modelo de desarrolloMVC
Lanzamiento inicial2007
Sitio web
Sitio oficial

Symfony. Un framework simplifica el desarrollo de una aplicación mediante la automatización de algunos de los patrones utilizados para resolver las tareas comunes. Además, un Framework proporciona estructura al código fuente, forzando al desarrollador a crear código más legible y más fácil de mantener. Por último, un Framework facilita la programación de aplicaciones, ya que encapsula operaciones complejas en instrucciones sencillas.

Es un completo Framework diseñado para optimizar, gracias a sus características, el desarrollo de las Aplicaciones web. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web.

Desarrollado completamente con PHP 5. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de primer nivel. Symfony es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y SQL Server de Microsoft. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows. A continuación se muestran algunas de sus características.

Características

Symfony se diseñó para que se ajustara a los siguientes requisitos:

  • Fácil de instalar y configurar en la mayoría de plataformas (y con la garantía de que funciona correctamente en los sistemas Windows y *nix estándares)
  • Independiente del sistema gestor de bases de datos
  • Sencillo de usar en la mayoría de casos, pero lo suficientemente flexible como para adaptarse a los casos más complejos
  • Basado en la premisa de "convenir en vez de configurar", en la que el desarrollador solo debe configurar aquello que no es convencional
  • Sigue la mayoría de mejores prácticas y patrones de diseño para la web
  • Preparado para aplicaciones empresariales y adaptable a las políticas y arquitecturas propias de cada empresa, además de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo
  • Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo
  • Fácil de extender, lo que permite su integración con librerías desarrolladas por terceros

Framework

La palabra inglesa framework define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular, que sirve como referencia para enfrentar y resolver nuevos problemas de índole similar. En el desarrollo de software, 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. Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las aplicaciones del dominio.

Qué es un Framework

Un framework es una estructura de archivos y utilidades que aceleran la programación de una aplicación informática, proveyendo una metodología de trabajo que sistematiza y facilita la generación de formularios, funciones y módulos de uso común, permitiendo al desarrollador dedicar su atención hacia los aspectos específicos de cada aplicación.

Qué es Symfony

Symfony es un framework para construir aplicaciones Web con PHP. En otras palabras, Symfony es un enorme conjunto de herramientas y utilidades que simplifican el desarrollo de las aplicaciones Web.

Para los iniciados en los frameworks, Symfony es una de las mejores copias para PHP del famoso framework Ruby on Rails. Symfony ha tomado las mejores ideas de Rails y de muchos otros frameworks, ha incorporado ideas propias y el resultado es un framework elegante, estable, productivo y muy bien documentado.

Symfony emplea el tradicional patrón de diseño MVC (modelo-vista-controlador) para separar las distintas partes que forman una aplicación web. El modelo representa la información con la que trabaja la aplicación y se encarga de acceder a los datos.

La vista transforma la información obtenida por el modelo en las páginas web a las que acceden los usuarios. El controlador es el encargado de coordinar todos los demás elementos y transformar las peticiones del usuario en operaciones sobre el modelo y la vista.

Entorno de desarrollo y herramientas

Symfony puede ser completamente personalizado para cumplir con los requisitos de las empresas que disponen de sus propias políticas y reglas para la gestión de proyectos y la programación de aplicaciones. Por defecto incorpora varios entornos de desarrollo diferentes e incluye varias herramientas que permiten automatizar las tareas más comunes de la ingeniería del software:

Las herramientas que generan automáticamente código han sido diseñadas para hacer prototipos de aplicaciones y para crear fácilmente la parte de gestión de las aplicaciones.

  • El framework de desarrollo de pruebas unitarias y funcionales proporciona las herramientas ideales para el desarrollo basado en pruebas ("test-driven development").
  • La barra de depuración web simplifica la depuración de las aplicaciones, ya que muestra toda la información que los programadores necesitan sobre la página en la que están trabajando.
  • La interfaz de línea de comandos automatiza la instalación de las aplicaciones entre servidores.
  • Es posible realizar cambios "en caliente" de la configuración (sin necesidad de reiniciar el servidor).
  • El completo sistema de log permite a los administradores acceder hasta el último detalle de las actividades que realiza la aplicación.

10 razones para utilizar Symfony

  • Escalable Symfony es infinitamente escalable si se disponen de los recursos necesarios. Yahoo! utiliza Symfony para programar aplicaciones con 200 millones de usuarios ¿de verdad necesitas más?
  • Probado Symfony ha sido probado con éxito durante años en varias aplicaciones gigantescas (Yahoo! Answers, Dailymotion, delicious) y en otros miles de sitios pequeños y medianos.
  • Soporte Symfony sigue una política de tipo LTS (long term support), por la que las versiones estables se mantienen durante 3 años sin cambios pero con una continua corrección de errores.
  • Licencia Symfony se publica bajo licencia MIT, con la que puedes desarrollar aplicaciones web comerciales, gratuitas y/o de software libre.
  • Seguro Symfony permite controlar hasta el último acceso a la información e incluye por defecto protección contra ataques XSS y CSRF.
  • Código Desde su primera versión Symfony ha sido creado sólo para PHP 5, para obtener el máximo rendimiento de PHP y aprovechar todas sus características.
  • Compromiso Los creadores de Symfony no viven del framework, sino de las aplicaciones que desarrollan con él, por lo que les interesa tanto como a tí aspectos como el rendimiento, la buena documentación y el soporte muy largo.
  • Documentado Symfony es el framework mejor documentado, ya que ha publicado cinco libros gratuitos de calidad y siempre actualizados. Además, toda la documentación está traducida al español.
  • Calidad Su código fuente incluye más de 9.000 pruebas unitarias y funcionales. ¿Vas a jugártela con otro framework que tenga pocas pruebas unitarias o que ni siquiera las utilice?
  • Internacionalización Symfony está traducido a más de 40 idiomas e incluye todas las herramientas necesarias para que traduzcas fácilmente tus aplicaciones.

Descargando Symfony

Versiones estables

Versión Fecha de Lanzamiento Versión PHP Fin del Mantenimiento Para la Versión
1.4 Noviembre de 2009 >= 5.2.4 Noviembre de 2012
2.0 Julio de 2011 >= 5.3.2

Ver además

Enlaces externos