¿QUE ES SYMFONY 3/4?

¿Qué puedo hacer con este framework? ¿Qué necesito para utilizarlo?

Una introducción a symfony.

Symfony 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.

Symfony 3 está 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 cuadro se desarrolla con PHP 7

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.

Características de symfony

  • 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

Automatización de características de proyectos web

Con symfony puedes automatizar la mayoría de elementos comunes de los proyectos web, como por ejemplo:

  • La capa de internacionalización que incluye Symfony permite la traducción de los datos y de la interfaz, así como la adaptación local de los contenidos.
  • La capa de presentación utiliza plantillas y layouts que pueden ser creados por diseñadores HTML sin ningún tipo de conocimiento del framework. Los helpers incluidos permiten minimizar el código utilizado en la presentación, ya que encapsulan grandes bloques de código en llamadas simples a funciones.
  • Los formularios incluyen validación automatizada y relleno automático de datos (“repopulation”), lo que asegura la obtención de datos correctos y mejora la experiencia de usuario.
  • Los datos incluyen mecanismos de escape que permiten una mejor protección contra los ataques producidos por datos corruptos.
  • La gestión de la caché reduce el ancho de banda utilizado y la carga del servidor.
  • La autenticación y la gestión de credenciales simplifican la creación de secciones restringidas y la gestión de la seguridad de usuario.
  • El sistema de enrutamiento y las URL limpias permiten considerar a las direcciones de las páginas como parte de la interfaz, además de estar optimizadas para los buscadores.
  • El soporte de e-mail incluido y la gestión de APIs permiten a las aplicaciones web interactuar más allá de los navegadores.
  • Los listados son más fáciles de utilizar debido a la paginación automatizada, el filtrado y la ordenación de datos.
  • Los plugins, las factorías (patrón de diseño “Factory”) y los “mixin” permiten realizar extensiones a medida de Symfony.
  • Las interacciones con Ajax son muy fáciles de implementar mediante los helpers que permiten encapsular los efectos JavaScript compatibles con todos los navegadores en una única línea de código.

El entorno de desarrollo y sus herramientas.

Lo bueno de ymfony  es 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.

Symfony versions Roadmap

Que hay en la versión 3

Los cambios de Syfmony3 con respecto a Symfony2, son muchos(la mayoría serán a nivel interno del núcleo del framework), lo que no significa que cambie demasiado la forma de trabajar con el framework.

Los cambios que más afectan a la hora de trabajar en la versión 3 de Symfony son:

  • Eliminación de clases y métodos deprecados
  • La consola ya no está en app/console si no en bin/console
  • Cambios en la forma de definir los formularios
  • Mejoras y grandes cambios en la forma de usar el sistema de autenticación y seguridad

Que hay nuevo en la versión 4

Symfony 4.0 es el resultado de la modernización y adaptación del framework a las nuevas necesidades. Eso sí, manteniendo los conceptos de Symfony pero con una implementación mucho mejor. Algunas ‘ideas Symfony’ tradicionales se han sustituido por ideas más acordes con los estándares de la industria del software. Todo ello ha dado como resultado una versión que ofrece mejores resultados con menos trabajo. Symfony 4.0 requiere de un menor aprendizaje al ser mucho más intuitivo y las configuraciones son más sencillas. Así, las horas de programación de la aplicación se reducen para que el tiempo que antes dedicabas a Symfony ahora puedas emplearlo en otras tareas.

Entre las principales novedades que trae Symfony 4.0 destacan tres que simplifican la generación de código en el desarrollo de una aplicación y la automatización de algunas de las tareas habituales durante la programación con Symfony.

Symfony Flex

La nueva forma de instalar y gestionar componentes en aplicaciones desarrolladas con Symfony. Esta herramienta hace que instalar o eliminar dependendencias sea mucho más sencillo. Con Symfony 4.0 no será necesario buscar en GitHub cómo instalar bundles, componentes, librerías o cómo activarlas en el kernel de la aplicación. El plugin Symfony Flex se encarga de automatizar ese tipo de tareas a la hora de programar aplicaciones con Symfony.

Symfony Flex permite instalar y configurar componentes automáticamente a través de recetas. El propio plugin ofrecerá la opción de ejecutar esa configuración automática si detecta una receta en el componente que se quiere instalar. Además, se ha creado un nuevo archivo que evita la aplicación de una misma receta más de una vez. También se han eliminado los archivos Makefile y se han sustituido por Symfony Console. Además de que con Symfony 4.0 los bundles se registran de forma automática.

Desaparecen los Bundles

Ya existía un debate a la hora de organizar una aplicación Symfony, si en distintos bundles por módulos o crear un solo bundle llamado AppBundle. Sin embargo en esta nueva versión se acabó el debate y se permitirá generar aplicaciones sin bundles, es más será una buena práctica y es el objetivo para la siguiente mayor versión.

El código de la aplicación ya no colgará sobre un bundle, si no que el código fuente colgará directamente del directorio src/ con el namespace App. Este cambio permite que el código esté desacoplado del framework. Este es uno de los conceptos que se está haciendo hincapié hoy en día a la hora de desarrollar software intentando mantener independiente la lógica del negocio y la tecnología usada.

Variables de entorno

En esta versión desaparece el fichero parameters.yml y en su lugar se emplearán variables de entorno. Se trata de una tendencia que están tomando la mayoría de frameworks y se recomienda como buena práctica en las mayoría de plataformas de despliegue en la nube.

El uso de variables de entorno además de ser un estándar permite la configuración del entorno de ejecución de una manera más cómoda. Éstas se pueden leer desde calquier software, además de ser independiente del código fuente, framework y lenguaje. Para el desarrollo en Symfony proponen utilizar el  componente DotEnv que vendrá nativo en Symfony 4. El cambio entre un archivo .env y las variables de entorno “de verdad” será automático y transparente.

Symfony Make Bundle

Este bundle sustituye a un popular SensioGeneratorBundle. Un bundle que se estaba quedando obsoleto. El nuevo SymfonyMakerBundle se encarga de crear el código inicial (boilerplate code) necesario para la consola, los controladores o los formularios. De esta manera, eliminar el código inicial de la aplicación es más fácil que generarlo. Así, el código nuevo que tengas que crear se hará con un bundle más moderno, más sencillo y, sobre todo, mucho más ligero.

SymfonyMakerBundle deja atrás el uso del prefijo generate para implementar makers. Por el momento solo están disponibles algunos comandos simples. Aunque Symfony irá añadiendo nuevos incluyendo makers interactivos.

Sustituir composer tasks por Makefile

Para autodesplegar en ciertos proveedores es habitual tener scripts propios de tareas como ejecutar test suites, borrar caché, arrancar un servidor web. Por ello se ha decidido centralizar los scripts haciendo uso de un archivo MakeFile

La herramienta make es bastante conocida y un “estándar” en algunos ámbito de la programación. La ventaja es que es totalmente agnóstico al lenguaje y no es necesario que los ejecute composer.

Cambio en la estructura de directorios

El objetivo en Symfony 3 era hacer que la estructura de directorios se pareciera a la de UNIX, un cambio que se implantó es incluir el directorio /var. En esta nueva versión se sigue en esta misma dirección  por lo que se harán cambios como:

  • Renombrar el directorio app/ por /etc (directorio de unix donde se almacenan los ficheros de configuración).
  • Los tests irán sobre el directorio tests/
  • Las plantillas se almacenarán en templates/ de tal manera que src/ está reservado exclusivamente a clases PHP. 

Aún más sencillo

Para hacer que la programación de aplicaciones con Symfony sea más sencilla e intuitiva, los directorios se simplifican. Con Symfony 4.0 todos serán de primer nivel y no existirán jerarquías entre ellos al adoptar una estructura plana.

Además, el tamaño de las aplicaciones se reducirá considerablemente. A partir de ahora sólo se instalarán las dependencias necesarias para poder desarrollar la aplicación. Así se evita tener que instalar todos los bundles y componentes de Symfony. Esto supondrá una reducción del 70% del código y de los archivos que requiere una aplicación desarrollada con Symfony 3. La versión 4.0 facilita el desarrollo de todo tipo de aplicaciones, desde microservicios a backends para aplicaciones en JavaScript, mediante el uso de un micro-kernel.

Al mismo tiempo que se publicaba Symfony 4.0 salía una versión anterior del framework: Symfony 3.4. Una versión que cuenta con las mismas funcionalidades de la rama 3.x pero que es imprescindible para poder actualizar tus aplicaciones a Symfony 4.0. Symfony 3.4 ha sido lanzada en versión LTS por lo que tendrá soporte hasta noviembre de 2021.

¿ Que versión aprender?

 Si te acabas de incoporar al conocimiento del mundo symfony yo te recominedo que empieces con la versión 4 ya que tiene cambios notables con respecto a la versión 3. 

 

Web Analytics