alex-muromtsev-rWACFuNOtrs-unsplash 1.jpg

Por qué usar un framework como Symfony (actualizado Feb 2025)

La foto no tiene mucho que ver con un framework, pero he buscado "Symfony" en Unsplash y era la única que había 😅... en fin, a lo que íbamos..

Hoy vamos a hablar de un tema importante en el mundo de la programació￳n y el desarrollo web: la importancia de utilizar un framework, específicamente Symfony en nuestro caso, pero hay miles para cada lenguaje, y co￳mo esto repercute de manera positiva en nuestros proyectos y, por lo tanto en nuestro caso, en nuestros clientes.

Resumen rápido

Un framework es un esqueleto que nos da una estructura base para arrancar nuestros proyectos con unos módulos o bloques base. Además, nos da estructura para desarrollar nuestro código y que nuestra aplicación pueda crecer bien.  Esta parte de la estructura, esta guía sobre cómo desarrollar nuestros proyectos es, junto con los componentes que ya existan, lo que más va a diferenciar unos frameworks de otros. Aunque seguramente haremos una comparativa en otro momento, pero clásicamente hay dos tipos de frameworks diferentes:

  • Ligeros, muy orientados a que el esqueleto sea lo mínimo posible sobre lo que construir, suelen ser rápidos pero más orientado a pequeñas webs y no a aplicaciones muy complejas. Ejemplos de estos frameworks en el caso de PHP serían Codeigniter y Slim
  • Empresariales, más orientados a la robustez, a una estructura de componentes potente que nos permita hacer aplicaciones complejas y escalables. Ejemplos en PHP serían Symfony y Laravel.

Esto no quiere decir que no puedas desarrollar una aplicación web compleja con Codeigniter o sencilla con Symfony, pero no es para lo que están pensados de origen y en algún momento se notará. 

Te cuento un poco más sobre Symfony

Symfony es un framework conocido por su robustez y es comúnmente utilizado en aplicaciones empresariales donde la escalabilidad y el rendimiento son críticos. Además, una de las mayores fortalezas de Symfony es su modularidad. Con su sistema de componentes y bundles, permite una gran flexibilidad para construir desde peque￱ños microservicios hasta aplicaciones empresariales de gran envergadura. Hablaremos más de los bundles más adelante.

Ventajas para nuestros proyectos

Desarrollo Acelerado

Hoy en día que todo va muy rápido, poder desarrollar más rápidamente las funcionalidades que nuestros clientes o proyectos necesitan, es una ventaja. 

Si no reinventamos la rueda, si no volvemos a programar una y otra vez el mismo componente, ganamos mucho tiempo de desarrollo. Aparte de que estos componentes que reutilizamos estaremos seguros de que estarán muy bien diseñados e implementados, ya que se re-utilizan en muchos sitios diferentes. 

Symfony nos permite acelerar significativamente el proceso de desarrollo, porque tiene muchos componentes ya integrados en el propio framework y porque su arquitectura está pensada justamente para que nuestras aplicaciones sean modulares y sea fácil crear un componente que podamos reutilizar.

Fiabilidad y Seguridad

Symfony tiene detrás una comunidad de desarrolladores muy grande y ha sido probado exhaustivamente, lo cual garantiza un c￳ódigo más seguro y fiable. No hay más que ver que en Github su repositorio principal tiene casi 30k favoritos.

Además, las actualizaciones frecuentes del framework (en Github ya llevan más de 530 releases), incluyen mejoras en la seguridad, algo que sin duda añ￱ade un valor incalculable para cualquier cliente preocupado por la integridad de su proyecto.

Mantenibilidad y Escalabilidad

Cuando usamos un framework, estamos partiendo de un esqueleto robusto y bien probado, con una estructura de có￳digo limpia y bien organizada, que hará que el mantenimiento futuro (que lo va a haber, siempre que se hace algo y se pone en producci￳ón hay que saber que habrá que mantenerlo y tenerlo actualizado después), sea mucho más ágil y la incorporaci￳ón de nuevas funcionalidades sean tareas mucho menos arduas. Esto significa que podrás adaptarte más rápidamente a las necesidades del mercado o de tu propio crecimiento.

Sobre los bundles y componentes reutilizables

Hablemos un poco mas de lo que deciamos de los bundles y de la posibilidad de no reinventar la rueda.

Componentes Reutilizables

Una de las maravillas de Symfony es su extenso repositorio de componentes reutilizables, llamados bundles. Estos son como pequeñ￱os paquetes de funcionalidades que se pueden integrar fácilmente en cualquier proyecto. Imagina que necesitas implementar un sistema de autenticaci￳ón en tu aplicaci￳ón. En lugar de crear uno desde cero, puedes utilizar un bundle preexistente como FOSUserBundle que ya tiene las mejores prácticas integradas.

Formularios y Validaci￳ón

Supongamos que tu aplicació￳n necesita recopilar informació￳n del usuario a través de formularios. Crear formularios desde cero es un proceso que puede ser engorroso y propenso a errores. Symfony ofrece un componente de formulario que te permite manejar todo, desde la creació￳n hasta la validació￳n y la presentaci￳ón de los formularios, de una manera mucho más eficiente y segura.

Enrutamiento y Control de Acceso

La navegación y la gestión de rutas es otra tarea que se vuelve mucho más sencilla con Symfony. El framework cuenta con un potente sistema de enrutamiento que te permite añadir, eliminar o modificar rutas con gran facilidad. Además, puedes configurar reglas de control de acceso para definir quién puede ver qué, mejorando así la seguridad de tu aplicación.

ORM y Base de Datos

Symfony está perfectamente integrado con el ORM (Mapeo Objeto-Relacional) Doctrine, que facilita la interacció￳n con bases de datos. Esto elimina la necesidad de escribir consultas SQL en plano, minimizando el riesgo de errores y vulnerabilidades, y ahorra mucho tiempo en el desarrollo, además de permitir integrarse con relativa facilidad con una u otra base de datos, dependiendo de las necesidades del proyecto. Es decir, con el mismo c￳ódigo de entidades podemos conectarnos con un MySQL, un PostgreSQL, Mongo, etc.

Motor de Plantillas Twig

El uso del motor de plantillas Twig permite separar la lógica del negocio de la presentación visual de la aplicación. Esto no solo acelera el desarrollo, sino que también hace que sea más sencillo para diseñadores y desarrolladores trabajar en paralelo.

En Resumen

Lo que podría tomar semanas de desarrollo si se hiciera desde cero, puede reducirse drásticamente gracias a las herramientas y componentes que Symfony pone a nuestra disposició￳n. Esto no es solo una ventaja para los desarrolladores, sino un verdadero valor a￱ñadido para nuestros clientes. Reduce tiempos de lanzamiento, aumenta la fiabilidad y facilita futuras escalabilidades, factores que en el competitivo mundo digital actual pueden marcar la diferencia entre el éxito y el fracaso.


📫
Hasta aquí el artículo de hoy. ¡Si quieres puedes escribirnos por redes sociales como siempre, o a hola@softspring.es con cualquier duda o sugerencia!

¡Trabajemos juntos!

¿Quieres contarnos tu idea?

CONTÁCTANOS