Symfony

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Symfony
Symfony2.svg
Desarrollador
Comunidad Symfony, SensioLabs
http://www.symfony.com
Información general
Última versión estable 2.4.5
23 de mayo de 2014; hace 2 meses (2014-05-23)[1]
Género Framework Web
Programado en PHP
Sistema operativo Multiplataforma
Licencia Licencia MIT
Estado actual Activo
En español Sí 

Symfony es un completo framework diseñado para optimizar el desarrollo de las 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. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web.

Symfony está desarrollado completamente en PHP 5.3. 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 Microsoft SQL Server. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows.

Historia[editar]

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 8[2]

Patrocinio[editar]

Symfony es patrocinado por Sensio Labs, una compañía francesa que provee consultoría, servicios, formación sobre tecnologías open source. [3] Inicialmente fue nombrado Sensio Framework,[4] 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[editar]

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 *nix 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 MVC (Modelo Vista Controlador), 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 sólo 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 potente línea de comandos que facilitan generación de código, lo cual contribuye a ahorrar tiempo de trabajo.

Características para el desarrollo automatizado de proyectos web[editar]

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

  • 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 y una mejor experiencia para el usuario.
  • El manejo de cache reduce el uso de banda ancha y la carga del servidor.
  • La facilidad de soportar 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.
  • Las listas son más amigables, ya que permite la paginación, clasificación y filtraje automáticos.
  • Los plugins proveen un alto nivel de extensibilidad.
  • La interacción con AJAX es mucho más sencilla.

Las ventajas tecnológicas de Symfony[editar]

Más rápido y menos codicioso: En el mundo de TI, no es raro que la gente se refiere al rendimiento de una aplicación... una vez que lleguen al final del proyecto! Es decir, una vez que todo ha sido diseñado tanto en lo funcional y los niveles de tecnología. Y a menos que usted tome todo menos una vez más, la optimización del rendimiento no es precisamente una tarea fácil. Por otro lado, Symfony2 fue concebido desde el principio para ser rápido y para favorecer el rendimiento. A modo de comparación, Symfony2 es aproximadamente 3 veces más rápido que la versión 1,4 o de 1,10 Zend Framework, teniendo hasta 2 veces menos memoria.

Flexibilidad ilimitada: Sean cuales sean sus necesidades, Symfony2 será adaptable. Su dependencia del inyector y el despachador de eventos que sea totalmente configurable, con cada uno de los ladrillos son totalmente independientes. A 3-en-1 marco, de todo tipo

• Línea indentada Stack completo (versión completa): se quiere desarrollar una aplicación compleja y que necesita muchas funcionalidades.

• Ladrillo por ladrillo: a construir su estructura de acuerdo con las funciones que usted necesita

• Microframework: como un independiente, Symfony2 también se puede utilizar para desarrollar una funcionalidad específica en uno de sus proyectos. Sin tener que reconstruir todo y sin necesidad de instalar todo el marco, pero sólo el ladrillo concreto que usted necesita.

La permanencia es también algo que se relacione con apoyo a largo plazo. Hoy en día, este apoyo es proporcionado por Sensio naturalmente. Pero también hay todo un ecosistema que ha crecido alrededor de Symfony desde su lanzamiento: la comunidad (listas de correo, IRC, etc) y las empresas de servicios de muchos otros que han invertido en el marco.

Por último, también es con miras a un desarrollo sostenible que Symfony se distribuye bajo licencia Open Source MIT, que no impone restricciones y permite el desarrollo de código abierto, así como aplicaciones propietarias.

Ampliable: Desde el más pequeño ladrillo a la base completa en sí, todo lo que se presenta como un "paquete" (o plug-in en el lenguaje Symfony) en Symfony2. Cada paquete está destinado para añadir funcionalidad al marco, por supuesto, y cada paquete también puede ser reutilizada en otro proyecto o compartida con el resto de la comunidad. En cualquier caso, el sistema de haces permite que todo cambio dentro de Symfony, incluyendo el propio núcleo. Uso de contratos de la interfaz del sistema entre los ladrillos, el comportamiento del marco así puede ser cambiado a voluntad, sin necesidad de reconfiguración completa.

Estable y sostenible: Desarrollado por los Laboratorios Sensio, las principales versiones de Symfony son soportados por 3 años por la empresa. E incluso de por vida en cuanto a las cuestiones relacionadas con la seguridad se refiere. Para mayor estabilidad, las versiones menores del contrato Symfony2 y la interfaz también están garantizadas y la compatibilidad entre todas las versiones secundarias se llevará a cabo en el API definido por las interfaces públicas.

La alegría de desarrollo: En un entorno altamente funcional, Symfony2 también garantiza un cierto nivel de comodidad para los desarrolladores. Al cuidar de una serie de tareas desagradables (desarrollo de funcionalidades de menor importancia, por ejemplo), Symfony2 permite a los desarrolladores centrarse en los aspectos más destacados reales de una aplicación y para ambos completamente validar su papel y mejorar su productividad. Entre las herramientas de Symfony diseñados para que el vida de un desarrollador mucho más fácil, está la barra de herramientas de depuración web legendario, así como soporte nativo para entornos de desarrollo, páginas de error detallados o incluso de seguridad nativa.

Facilidad de uso: Completamente flexible para satisfacer las necesidades de los profesionales y usuarios avanzados por igual, Symfony2 es también muy accesible. Abundante documentación, la comunidad y el apoyo profesional, y "incrustados" mejores prácticas dentro del marco (las mejores prácticas que se aplican de forma nativa sin necesidad de ser conscientes de ellos o entenderlos) permiten que un principiante se sienta muy rápidamente a gusto con Symfony.[6]

Versiones[editar]

Color Meaning
Rojo Versión ya no soportada
Verde Versión actualmente soportada
Azul Versión futura
Versión Fecha lanzamiento Soporte Versión de PHP Fin de mantenimiento Notas
1.0 Enero 2007 3 años >= 5.0 Enero 2010
1.1 Junio 2008 1 año >= 5.1 Junio 2009 parches de seguridad fueron lanzados hasta junio 2010
1.2 Diciembre 2008 1 año >= 5.2 Noviembre 2009
1.3 Noviembre 2009 1 año >= 5.2.4 Noviembre 2010
1.4 Noviembre 2009 3 años >= 5.2.4 Noviembre 2012 Versión LTS 1.4 es idéntica a 1.3, pero no es compatible con las funcionalidades obsoletas de 1.3.[7]
2.0[8] Julio 2011[9] >= 5.3.2 Marzo 2013 La última versión 2.0.x fue Symfony 2.0.23[10]
2.1[11] Septiembre 2012 8 meses >= 5.3.3 Abril 2013 Más componentes son parte del API estable.
2.2 Marzo 2013 8 meses >= 5.3.3 Noviembre 2013 Nuevas características[12]
2.3 Mayo 2013 3 años >= 5.3.3 Mayo 2016 (la primera versión LTS) fue lanzada a finales de mayo de 2013;
2.4 Noviembre 2013 8 meses >= 5.3.3 Julio 2014 La primera versión de la rama 2.x que tiene retrocompatibilidad completa.[13]
2.5 Mayo 2014[14] 8 meses >= 5.3.3 Enero 2015 Nuevas características.[15]

Véase también[editar]

Referencias[editar]

Enlaces externos[editar]