Symfony es un framework diseñado para desarrollar aplicaciones web basado en el patrón Modelo Vista Controlador. 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.

Symfony está desarrollado completamente en PHP. Es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows.

Historia

En el año 2003, Fabien Potencier, creador de Symfony y actual CEO de Sensio Labs, investigó acerca de las herramientas open source existentes para el desarrollo de aplicaciones web en PHP, pero ninguna de las existentes cumplió con sus expectativas. Cuando PHP 5 fue liberado, consideró que las herramientas que existían en ese momento habían madurado lo suficiente para ser integradas en un solo framework. Le llevó un año desarrollar el núcleo de Symfony. Basó su trabajo en el Modelo Vista Controlador, el ORM de Propel y el ayudante para realizar plantillas de Ruby on Rails.

La primera versión de Symfony fue lanzada en octubre de 2005, por Fabien Potencier. Originalmente fue creado para el desarrollo de las aplicaciones de Sensio. Luego, tras el éxito que tuvo en el desarrollo de una página web para comercio electrónico y algunos otros proyectos, decidió liberarlo bajo una licencia open source.

En 2012 el CMS Drupal decidió empezar a usar algunos componentes de Symfony en la versión Drupal 8http://www.symfony.es/noticias/2011/10/26/drupal-8-integra-los-primeros-componentes-de-symfony2/ Drupal 8 integra los primeros componentes de Symfony2

Patrocinio

Symfony es patrocinado por Sensio Labs, una compañía francesa que provee consultoría, servicios, formación sobre tecnologías open source. Información acerca de Sensio Labs Inicialmente fue nombrado Sensio Framework,symfony framework forum: General discussion => New symfony tagline brainstorming y a todas sus clases se les aplicó el prefijo sf. Tiempo después, cuando se decidió lanzarlo como un framework open source, se acordó llamarle Symfony.

Características

Symfony fue diseñado para ajustarse 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 Unix-like estándares). Independiente del sistema gestor de bases de datos. Su capa de abstracción y el uso de ORM (Doctrine 2, Propel), permiten cambiar con facilidad de SGBD en cualquier fase del proyecto. Utiliza programación orientada a objetos y características como los espacios de nombres, de ahí que sea imprescindible PHP 5.3. Sencillo de usar en la mayoría de casos, aunque es preferible para el desarrollo de grandes aplicaciones web que para pequeños proyectos. Aunque utiliza Modelo Vista Controlador (MVC), tiene su propia forma de trabajo en este punto, con variantes del MVC clásico como la capa de abstracción de base de datos, el controlador frontal y las acciones. 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 las bibliotecas de otros fabricantes. Una línea de comandos que facilita la generación de código.

Características para el desarrollo automatizado de proyectos web

Las características más comunes para el desarrollo de proyectos web están automatizadas en symfony, tales como:

Permite la internacionalización para la traducción del texto de la interfaz, los datos y el contenido de localización. La presentación usa templates y layouts que pueden ser construidos por diseñadores de HTML que no posean conocimientos del framework. Los formularios soportan la validación automática, lo cual asegura mejor calidad de los datos en las base de datos. El manejo de caché reduce el uso de banda ancha y la carga del servidor. El soporte de autenticación y credenciales facilita la creación de áreas restringidas y manejo de seguridad de los usuarios. El enrutamiento y las URLs inteligentes hacen amigable las direcciones de las páginas de la aplicación. Permite la paginación, clasificación y filtraje automáticos. Los plugins proveen un alto nivel de extensibilidad. Dispone de interacción con AJAX.

Versiones

Color Meaning Rojo Versión sin soporte Naranja Versión solo con Actualizaciones de Seguridad Verde Versión soportada Azul Versión futura

Versión Fecha lanzamiento Soporte Versión de PHP Fin de Soporte 1.0 Enero de 2007 3 años >= 5.0 Enero de 2010 1.1 Junio de 2008 1 año >= 5.1 Junio de 2009 1.2 Diciembre de 2008 1 año >= 5.2 Noviembre de 2009 1.3 Noviembre de 2009 1 año >= 5.2.4 Noviembre de 2010 1.4 Noviembre de 2009 3 años >= 5.2.4 Noviembre de 2012 2.0 Julio 2011Symfony blog - Symfony2 release 8 meses >= 5.3.2 Marzo de 2013 2.1Symfony 2.1.0 released Septiembre de 2012 8 meses >= 5.3.3 Abril de 2013 2.2 Marzo de 2013 8 meses >= 5.3.3 Noviembre de 2013 2.3 Mayo de 2013 3 años >= 5.3.3 Mayo de 2016 2.4 Noviembre de 2013 8 meses >= 5.3.3 Julio de 2014 2.5 Mayo 2014http://symfony.com/roadmap?version=2.5#symfony-checker 8 meses >= 5.3.3 Enero de 2015 2.6 Noviembre de 2014 8 meses ≥ 5.3.3 Julio de 2015 2.7 Mayo de 2015 3 años ≥ 5.3.9 Mayo de 2019 2.8 Noviembre de 2015 3 años ≥ 5.3.9 Noviembre de 2019 3.0 Noviembre de 2015 8 meses ≥ 5.5.9 Julio de 2016 3.1 Mayo de 2016 8 meses ≥ 5.5.9 Enero de 2017 3.2 Noviembre de 2016 8 meses ≥ 5.5.9 Julio de 2017 3.3 Mayo de 2017 8 meses ≥ 5.5.9 Enero de 2018 3.4 Noviembre de 2017 3 años ≥ 5.5.9 Noviembre de 2021 4.0 Noviembre de 2017 8 meses ≥ 7.1.3 Julio de 2018 4.1 Mayo de 2018 8 meses ≥ 7.1.3 Enero de 20194.2 Noviembre de 2018 8 meses ≥ 7.1.3 Julio de 20194.3 Mayo de 2019 8 meses ≥ 7.1.3 Julio de 20204.4Noviembre de 2019 3 años≥ 7.1.3Noviembre de 20225.0Noviembre de 2019 8 meses≥ 7.1.3Julio de 20205.1Mayo de 2020 8 meses≥ 7.1.3Enero de 20215.2Noviembre de 20208 meses≥ 7.1.3Julio de 20215.3Mayo de 20218 meses≥ 7.2.5Enero de 20225.4Noviembre de 20213 años≥ 7.2.5Noviembre de 20246.0Noviembre de 202115 meses≥ 8.0.2Enero de 20236.1Mayo de 20228 meses≥ 8.1.0Enero de 20236.2Noviembre de 20228 meses≥ 8.1.0Julio de 20236.3Mayo de 20238 meses≥ 8.1.0Enero de 20246.4Noviembre de 20233 años≥ 8.1.0Noviembre de 20267.0Noviembre de 20238 meses≥ 8.2.0Julio de 20247.1Mayo de 20248 meses≥ 8.2.0Enero de 2025

Certificación

SensioLabs, la empresa que gestiona Symfony, dispone de un programa de certificación. El examen consta de 75 preguntas de tipo test sobre 16 temas distintos y al superar el examen se pueden conseguir dos niveles: avanzado o experto. El examen es en inglés y está disponible una guía de estudiohttps://leanpub.com/symfony-selfstudy con 275 preguntas tipo para practicar el examen.

Véase también PHP Framework Código abierto

Referencias

Enlaces externos Sitio web oficial Blog oficial Versiones de Lanzamiento symfony.es, blog en español sobre Symfony. Symfony2, el libro oficial Comunidad symfony-es, grupo de Google en español dedicado a Symfony. Conferencia española de Symfony

Libro de preparación para la certificación.

Categoría:Software libre Categoría:Frameworks para aplicaciones web Categoría:Herramientas de desarrollo de software Categoría:Entornos de desarrollo integrados Categoría:Frameworks para PHP