Symfony vs Laravel ¿Qué framework PHP es el mejor?

¿Qué beneficio supone la utilización de un framework en lugar de programar desde cero?

  • La utilización de un framework acorta los tiempos de desarrollo. Por ejemplo, se elimina la necesidad de programar las conexiones con una base de datos al usar operaciones CRUD.
  • Mejora la escabilidad del sistema.
  • El mantenimiento del código es mucho más sencillo al tener todo localizado y organizado.
  • La utilización de un módelo MVC incrementa la velocidad en el desarrollo de nuestra aplicación.
  • Los frameworks cubren la mayoría de problemas de seguridad.

Symfony vs Laravel

Procedamos con una presentación rápida de nuestros contendientes.

Symfony

Symfony es una serie de componentes reutilizables (Bundles) escritos en PHP, permitiendo al desarrollador crear aplicaciones fácilmente escalable y con un alto rendimiento.

Laravel

Laravel, también conocido como “el framework PHP para artesanos”, ofrece una gran comunidad y una amplia librería de aplicaciones o desarrollos que podemos utilizar en nuestros proyectos.

Instalación

Tanto para Symfony como para Laravel, Composer tiene un papel crucial en la instalación. Esto se debe a que en ambos casos todo es manejado por componentes.

Symfony

Los requisitos de Symfony son:

  • PHP >= 5.5.9
  • Composer
  • Json habilitado
  • Ctype habilitado
  • Tener asignado el valor de date.timezone en php.ini

Laravel

Los requisitos de Laravel son:

  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • Composer GULP

Plantillas

Symfony

Twig se define a sí mismo como un sistema modelo para la creación de plantillas para PHP, fácil de aprender y rápido de utilizar.

Una comparación rápida sería como mostrar el valor de una variable en php

<?php echo $var ?>

y en Twig

{{ var }}

La mayor potencia de Twig es poder crear plantillas que se pueden reutilizar a través de la creación de bloques:

{# base.html.twig #}

<html>
  <head>
  </head>
  <body>
    {% block content %}
    {% endblock %}
  </body>
</html>
{# layout.html.twig #}

{% extends "layout.html.twig" %}

{% block content %}
  <h1>{{ title }}</h1>
{% endblock %}

Laravel

Blade tiene una base similar a Twig, pero, a diferencia de este, permite la utilización de código php en las plantillas y todo el código tiene que ser convertido a php antes de ser visualizado.

Bases de datos

En este campo, Symfony nos ofrece un mayor soporte sobre varias bases de datos. A continuación mostramos la tabla:

Symfony

  • Microsoft BI
  • MongoDB
  • MySQL
  • NoSQL
  • PostgreSQL
  • CouchDB
  • DynamoDB
  • GemFire
  • GraphDB
  • MemBase
  • MemCacheDB
  • Oracle
  • Apache
  • Jackrabbit

Laravel

  • SQLite
  • MySQL
  • PostgreSQL
  • Redis
  • Microsoft BI
  • MongoDB

Velocidad de desarrollo

Desde la perspectiva de una empresa o un cliente, el tiempo transcurrido desde que se inicia el desarrollo hasta que su aplicación sale al mercado es muy importante. Tomando esto en cuenta, Laravel ofrece la posibilidad de llevar a cabo desarrollos rápidos y tiene una curva de aprendizaje más sencilla. Por otro lado, Symfony es un framework muy robusto y que nos garantiza un rendimiento y un tiempo de vida más largo.

Conclusión

Considerar a un framework mejor que otro es algo muy complicado. La mejor opción es que teniendo en cuenta las características de cada uno y el tipo de proyecto, escoger el más adecuado.

De una forma más sencilla, si queremos algo fácil de aprender y los proyectos son aplicaciones con un tiempo de desarrollo corto, la mejor opción es Laravel.

Si queremos un framework robusto, que ofrezca un buen rendimiento o los proyectos son aplicaciones con un tiempo de desarrollo largo, la mejor opción es Symfony.

Autor/a: Adrian Caamano.