¿Qué framework de PHP elegir? Comparando Symfony, Laravel y Yii2

En este artículo se analizan los tres frameworks de PHP más populares: Symfony, Laravel y Yii2. El autor compara sus capacidades y trata de ayudar al lector a elegir la mejor herramienta. El artículo está dirigido a desarrolladores principiantes que aún no han trabajado con frameworks de PHP.
¿Por qué se necesita un framework de PHP?
PHP es uno de los lenguajes de programación más populares y demandados. Grandes proyectos como Facebook lo utilizan activamente. Los sistemas de gestión de contenido (CMS) populares, como WordPress, también están escritos en PHP. Este motor impulsa aproximadamente un tercio de todos los sitios web en Internet y alrededor del 60% de los sitios web basados en CMS.

PHP está en constante desarrollo y la versión 7 ha hecho que este lenguaje sea estable. Entonces, ¿por qué se necesitan frameworks y por qué se utilizan con frecuencia en lugar del lenguaje nativo? Aquí hay algunas razones:
  • Los frameworks aceleran el desarrollo. Por ejemplo, un framework de PHP le libera de la necesidad de escribir consultas a bases de datos. Los frameworks implementan las funciones básicas de CRUD que son necesarias para trabajar con bases de datos.
  • Las aplicaciones desarrolladas en frameworks son fácilmente escalables.
  • Es más fácil mantener un proyecto en un framework que en PHP nativo. El código de los frameworks es conciso, por lo que es fácil trabajar con él.
  • Los frameworks de PHP utilizan el modelo MVC, lo que facilita el desarrollo.
  • Las aplicaciones en frameworks son más seguras que las aplicaciones en PHP puro.
  • Los frameworks implementan el principio DRY, lo que permite a los desarrolladores escribir menos código.
PHP nativo permite crear aplicaciones. Pero las ventajas mencionadas anteriormente son suficientes para prestar atención a los frameworks.
Información útil

Por qué Django es el mejor framework para el desarrollo de sitios web: un artículo sobre las características y peculiaridades de un popular framework web.
Cómo elegir un framework de PHP
Las respuestas a las siguientes preguntas ayudarán a elegir un framework:
  • ¿Qué funcionalidad del framework se ajusta a las necesidades del proyecto?
  • ¿Qué tan difícil es aprender el framework elegido?
  • ¿Es fácil escalar un proyecto creado con este framework?
  • ¿El framework se está desarrollando activamente?
  • ¿Hay soporte a largo plazo (LTS)?
  • ¿Hay una comunidad activa?
Symfony, Laravel y Yii2

Antes de sumergirnos en los detalles, echemos un vistazo a las principales características de los frameworks de PHP más populares. Estos son Symfony, Laravel y Yii2.
Symfony

Symfony es un conjunto de componentes de PHP que son adecuados para la reutilización. El framework permite crear aplicaciones escalables y de alto rendimiento. La API de Symfony se integra con aplicaciones de terceros, así como con herramientas de desarrollo frontend como Angular JS.

Symfony es utilizado por muchos proyectos populares, como Drupal y phpBB. Incluso el framework de PHP más popular, Laravel, se basa en Symfony.
Laravel

Hasta mediados de 2019, este es el framework de PHP más popular del mundo. La versión estable actual es la 5.8.10. La popularidad de Laravel se destaca por el hecho de que muchos proveedores de alojamiento ofrecen soluciones especiales para aplicaciones creadas con este framework.
Yii2

Yii fue presentado en 2008. Es un framework seguro, rápido y de alto rendimiento para el desarrollo de aplicaciones web. La versión actual es la 2.0.19.

Yii2 utiliza el administrador de paquetes Composer para gestionar las dependencias. Gracias a la carga diferida, Yii2 se considera el framework de PHP más rápido.

Otra característica de Yii2 es la integración con jQuery. Esto facilita el trabajo de los desarrolladores frontend con aplicaciones creadas en Yii2. Al igual que Symfony, Yii2 utiliza componentes predefinidos, lo que acelera el desarrollo.
¿Cuál es el mejor framework de PHP?

Todos los frameworks mencionados son adecuados para el desarrollo de aplicaciones web. Sin embargo, estas herramientas tienen diferencias que los desarrolladores deben tener en cuenta. A continuación se detallan los aspectos más importantes.
Motores de plantillas

Los motores de plantillas aceleran el desarrollo y facilitan la creación del frontend de una aplicación. Por ejemplo, los motores de plantillas resuelven el problema de la escape automático de HTML.
Symfony

Symfony utiliza Twig de forma predeterminada. Es un motor de plantillas que permite escribir código limpio y amplía las capacidades de PHP nativo. Por ejemplo, Twig facilita la creación de secuencias de escape.
{{ var }} {{ var|escape }} {{ var|e }} {# escape variable #}
Laravel

Este framework utiliza el motor de plantillas Blade. Permite utilizar código PHP en las vistas. Blade apenas afecta la velocidad de las aplicaciones, ya que las vistas se almacenan en archivos separados con la extensión .blade.php. El código de las vistas se convierte en PHP nativo.
Yii2

Este framework no utiliza motores de plantillas externos de forma predeterminada. Sin embargo, el desarrollador puede elegir las herramientas según las tareas que se estén resolviendo. Twig y Smarty son algunos de los motores de plantillas recomendados.

Conclusión intermedia: no hay un claro ganador en este criterio. Todos los frameworks admiten el uso de motores de plantillas, lo que acelera el desarrollo del frontend de las aplicaciones. Yii2 tiene una ligera ventaja, ya que no utiliza ningún motor de plantillas de forma predeterminada.
Aprende Laravel en Códica

El curso de Laravel forma parte de la profesión de "Desarrollador de PHP". Los primeros cursos de la profesión están disponibles de forma gratuita después de registrarse.
Modularidad

Symfony tiene componentes estándar que se pueden utilizar para crear aplicaciones. Es decir, Symfony es un excelente ejemplo de un framework modular.

Yii2 implementa el enfoque MVC. Este framework también tiene componentes, aunque la modularidad no está tan bien implementada como en Symphony.

Laravel se queda atrás de Symfony y Yii2 en términos de capacidad para utilizar un enfoque modular en el desarrollo de aplicaciones.

Conclusión intermedia: si necesita un framework de PHP modular, elija Symfony.
Instalación

Cada framework admite varias opciones de instalación. Por ejemplo, Symfony, Laravel y Yii2 se pueden instalar utilizando el administrador de paquetes Composer. Todos los frameworks permiten trabajar con una aplicación de plantilla después de la instalación.

Conclusión intermedia: no hay ganadores en términos de facilidad de instalación, cada una de las tres herramientas se instala fácilmente.
Velocidad de desarrollo

Symfony se considera un framework confiable con una gran y activa comunidad. Laravel se desarrolla rápidamente y ocupa el primer lugar en la lista de los frameworks más populares. Yii2 proporciona un rendimiento de aplicaciones.

Si necesita crear una aplicación web lo más rápido posible y nunca ha trabajado con frameworks de PHP, elija Laravel. Es más fácil de aprender y hay más guías en línea para Laravel.
Rendimiento

Según el autor del artículo original, el framework más rápido es Yii2. Es la elección óptima para crear aplicaciones de alto rendimiento.

El rendimiento de Laravel es un tema discutible. En este criterio, se queda atrás de Yii2 y Symfony. Sin embargo, se pueden encontrar muchas recomendaciones en línea para acelerar las aplicaciones de Laravel.
Soporte de bases de datos

En este criterio, Symfony es el claro ganador. Yii2 y Laravel se quedan atrás. Puede ver información específica en la tabla.
Comunidad y recursos

Una comunidad activa y numerosa se puede considerar una garantía de soporte y desarrollo a largo plazo de la herramienta. Se han formado grandes comunidades en torno a los frameworks mencionados. La comunidad de Symfony se puede considerar la más madura.

Un punto importante es evaluar el futuro de un framework no por el tamaño estático de la comunidad, sino por su dinámica y actividad.

Si evaluamos un recurso como la documentación y los materiales de aprendizaje, Laravel es el líder.
Extensibilidad

La funcionalidad de los frameworks se puede ampliar mediante extensiones o paquetes. En este criterio, Laravel sigue siendo el líder. En el catálogo de Packalyst se pueden encontrar alrededor de 9000 paquetes para Laravel.

Yii2 y Symfony pueden presumir de 2800 y 2830 extensiones respectivamente. Si la posibilidad de ampliar la funcionalidad estándar del framework con paquetes adicionales es importante para usted, la elección es obvia.
Similitud de características

Hemos analizado las diferencias entre los frameworks. Ahora es el momento de centrarse en las características similares. Aquí están:
  • Los tres son frameworks fullstack. Proporcionan un ciclo completo de desarrollo de aplicaciones web, incluyendo frontend y backend.
  • Son proyectos de código abierto que se pueden encontrar en GitHub.
  • Detrás de Symfony, Laravel y Yii2 hay comunidades activas y numerosas.
  • Los tres frameworks admiten el mapeo objeto-relacional (ORM). Por lo tanto, estas herramientas son convenientes para su uso en la programación orientada a objetos.
  • Los frameworks mencionados son herramientas confiables y seguras para crear aplicaciones web.
¿Todavía no puedes elegir un framework? Aquí hay información resumida que te ayudará a decidir.

Para Symfony:
  • Hay versiones LTS del framework
  • Amplia funcionalidad de serie
  • Es el framework más estable
  • Tiene componentes predefinidos que permiten utilizar un enfoque modular al crear aplicaciones
Para Yii2:
  • Admite Ajax
  • Proporciona rendimiento y velocidad en las aplicaciones
  • Framework fácilmente extensible
  • Tiene un controlador de errores incorporado
  • Adecuado para el desarrollo de servicios web basados en REST (RESTful web-service)
Para Laravel:
  • El framework de PHP más popular
  • Tiene un administrador de paquetes Composer incorporado
  • Admite pruebas unitarias de serie
  • Gran cantidad de paquetes para ampliar la funcionalidad
Conclusión
Symfony, Laravel y Yii2 se pueden considerar excelentes herramientas para el desarrollo de aplicaciones web. El autor del artículo original prefiere Laravel. Al mismo tiempo, considera que Symfony y Yii2 son herramientas igualmente poderosas. La característica distintiva de Symfony es su comunidad desarrollada, y la característica distintiva de Yii es su confiabilidad y seguridad.

Por favor, escribe en los comentarios qué framework de PHP prefieres.

Traducción adaptada del artículo de Michael J. Garbade How to choose a PHP framework. La opinión del autor del artículo original puede diferir de la opinión de la administración y el personal de Códica.
Leer otros artículos de Blog
Lee otros artículos relevantes del mundo de la tecnología y el espíritu empresarial.