Laravel vs Symfony ¿Cuál es mejor para mi organización?

Un framework de PHP es la solución más frecuente para el desarrollo web en las organizaciones. Actualmente, puedes encontrar frameworks de PHP como Laravel, Symfony, Yii, CodeIgniter, CakePHP, Swoole, entre otros. Aunque los más populares son Laravel y Symfony.

En el momento de tomar una decisión sobre con qué framework desarrollar tu proyecto web, debes tener en cuenta los pros y contras de cada uno para poder garantizar un correcto desarrollo y aún más importante, un correcto funcionamiento y garantías de escalabilidad.

Estadísticas de la industria: Laravel vs Symfony

Google Trends nos indica que Laravel ha sido el framework PHP más popular durante los últimos 5 años.

Desglose comparativo por región:

Información básica de Laravel y Symfony

Symfony

Symfony es un conjunto de componentes de PHP, y un Framework para aplicaciones web. Al mismo tiempo es una “filosofía y una comunidad, todos trabajando juntos en armonía”. Gracias a su estructura y madurez, el framework de Fabien es una herramienta adoptada por la mayoría de los proyectos de PHP más importantes del mercado. Los siguientes son algunos ejemplos, entre muchos, de los que están utilizando sus componentes actualmente: Drupal, Joomla, Magento, Prestashop, Laravel, Yii, CiviCRM, Google API, Facebook API, Composer y phpMyAdmin. Esto es debido a que Symfony no es un Framework PHP más, sino un conjunto de las mejores prácticas de programación, estándares web y librerías PHP como PSR, Propel, Doctrine, PHPUnit, Twig y Swift Mailer.

Symfony es una herramienta que utilizamos en muchos proyectos en ITDO, y es una de estas herramientas digitales innovadoras que también están en constante adaptación para sobrevivir en un mundo cada día más global y más competitivo.

Laravel

Laravel es un framework PHP de código abierto que sigue un patrón de desarrollo MVC  (modelo-vista-controlador), que permite una codificación muy sencilla, reduciendo el tiempo de desarrollo en aplicaciones PHP simples. Reutiliza componentes existentes de diferentes framework para crear una aplicación web. Y sí, has leído bien el anterior parágrafo, el 30% del código de Laravel es Symfony, pero con características de desarrollo notables en frameworks como Yii y CodeIgniter. Se trata del pequeño bebé de Symfony, que aprende rápidamente de sus primos Yii y CodeIgniter.

Con este propósito de utilizar otros frameworks conocidos, no solo no intenta reinventar la rueda, Laravel mantiene las cosas simples. Utiliza el framework core de Symfony que es el más estable, probado y sólido para configurar una forma completamente nueva de desarrollar con MVC (modelo-vista-controlador) para hacernos la vida más fácil.

Symfony vs Laravel

A pesar de que estos dos frameworks están emparejados familiarmente, hay grandes diferencias que los hacen ser soluciones contrincantes a la hora de escoger un framework PHP para el desarrollo web.

Aclarar que en este artículo no entraré en detalles técnicos de performance o comparación de librerías. Si tu prioridad es la velocidad o disponer de las librerías más modernas, creo que sin duda este no es tu artículo. Te aseguro que el rendimiento, la velocidad y las librerías más modernas dependerán en gran medida de tu código y no del framework. A la hora de desarrollar debes ser cuidadoso con el uso que haces de los Modelos y los Controladores. En este sentido Laravel es más flexible, permitiéndote desarrollar mucho más rápido y sin tantas exigencias de buenas prácticas, en cambio Symfony te obliga a mantener buenas prácticas como el uso de PSR, y esto a largo plazo se traduce en velocidad, rendimiento y escalabilidad.

Además, en caso que estés interesado en desarrollar aplicaciones robustas y escalables para tu organización, creo que deberías evaluar la elección de tu framework PHP más allá del rendimiento. Debes evaluarlo desde el punto de vista del retorno de inversión (ROI). Al igual que lo harías con la compra o inversión de cualquier otro activo en tu organización.

En 2020, Laravel apareció como el framework PHP más popular. Se basa más en métodos y rasgos que lo hace muy sencillo, hace que el desarrollo sea mínimo y todo el framework sea más fácil de entender. Symfony en cambio está diseñado para proyectos más grandes o más complejos que contienen funciones enormes y son utilizados por una cantidad significativa de clientes. Mientras que Laravel está relacionado con el patrón de diseño MVC que se mencionó anteriormente. Cuando se trata de escalabilidad, si tu elección es Laravel, debes tener en cuenta la necesidad de escribir el código para prever escalar en el futuro. Symfony en cambio proporciona varias plataformas para mantener la escalabilidad desde el primer día.

Desde el punto de vista de front-end, Symfony proporciona Twig, y Laravel proporciona Blade, que tiene la gran ventaja de reutilizar código. Sin embargo, una conclusión que sacaría de eso es que Laravel es probablemente mejor para usar como un framework de front-end, que no requiere una funcionalidad compleja de almacenamiento de datos. Se adapta perfectamente para ser una capa de servicio con su integración con Iron.io y otros proveedores populares de SaaS (AWS, S3, sendgrid, etc.).

Si una de tus prioridades es el soporte de bases de datos, ambos te proporcionan un mapeo relacional de objetos para el acceso a los datos. Symfony usa Doctrine y Laravel usa Eloquent. Eloquent ORM es la mayor fortaleza de Laravel, al igual que su debilidad, es genial y simple, pero debido a que es tan simple, no está tan bien estructurado y no tiene tanta compatibilidad. Revisemos el cuadro de compatibilidades con los motores de bases de datos:

Motor de BD

Laravel

Symfony

MySQL

V

V

Oracle

 

V

Drizzle

 

V

SQLServer

V

V

PostgreSQL

V

V

SQLite

V

V

SAP Sybase SQL Anywhere

 

V

Como puedes ver con estas opciones, Symfony admite más bases de datos que Laravel. Debido a esto, la manipulación de datos y la administración de datos se vuelven mucho más simples con Symfony. Y aunque hoy descartes bases de datos como Oracle o SAP, nunca sabes lo que te deparará el futuro, quien sabe las futuras necesidades con las que se encontrará tu desarrollo web.

Conclusión

Está claro que cada framework cumple ciertos requisitos. Ambos ofrecen ayudas muy útiles para el desarrollo y son frameworks de calidad. Como todo, decidir si utilizar un framework en lugar de otros siempre es decisión del desarrollador, ¿o de la organización? ;)

Laravel parece ser perfecto para los proyectos cuando necesitas desarrollar tu aplicación rápidamente y no quieres gastar tanto dinero. Cuando decidas descargar Laravel, obtendrás un montón de implementaciones listas para usar que te facilitarán mucho el trabajo. Pero, por otro lado, si deseas una herramienta robusta y escalable debes pensar en Symfony, aunque la curva de aprendizaje sea más lenta. Con el tiempo te aseguro que el tiempo invertido tendrá retorno, recordarás estas palabras 2 años después cuando tengas que modificar una función en un controlador que afecta a la lógica de negocio de tu organización y el equipo de trabajo no sea el mismo. Symfony es sin duda la respuesta para proyectos complejos a largo plazo y que requieren calidad y flexibilidad, especialmente si tu proyecto se trata de una API.

Photo by Anthony Martino on Unsplash

Referencias: