Tres tipos de proyectos en Symfony

Resumen

Symfony permite crear tres tipos de proyectos desde su instalador oficial: minimalista, web y especializado para API. Si estás empezando con este framework de PHP, entender cuál elegir te ahorra tiempo y evita distracciones innecesarias en tu primera estructura de carpetas.

La idea es sencilla: instalas el binario de Symfony, eliges el tipo de proyecto según lo que vas a construir y arrancas con la base correcta. Vamos a verlo paso a paso.

¿Qué es Symfony y por qué se describe como paquetes reutilizables?

Symfony es un framework de PHP para el desarrollo de proyectos web que se define a sí mismo como un conjunto de paquetes reutilizables. Esa frase, que aparece en su página oficial, no es decorativa: cada funcionalidad que necesitas viene como una pieza independiente que puedes sumar a tu proyecto.

Cuando creas un proyecto, lo que realmente haces es combinar varias de esas piezas. Por eso un proyecto web trae muchos paquetes preinstalados, mientras que uno minimalista trae solo lo mínimo para arrancar.

¿Symfony es un lenguaje o un framework? Es un framework de PHP. Está escrito en PHP y se usa para construir aplicaciones y APIs sobre ese lenguaje.

¿Cómo instalar el binario de Symfony en tu sistema?

Desde la página oficial encuentras el botón de descarga con instrucciones específicas para Mac, Windows y Linux. Una vez instalado el binario, si vuelves a ejecutar el comando de instalación, el sistema te confirma que ya lo tienes y te pregunta si deseas reinstalarlo [01:00].

Una recomendación práctica: trabaja dentro de una carpeta dedicada a tus proyectos web. Da igual si está en el escritorio, en documentos o en una ruta personalizada. Lo importante es que en ese mismo entorno tengas también PHP y una base de datos lista para correr tus aplicaciones.

Para crear la carpeta de trabajo se usa mkdir symfony y luego se entra a ella. Desde ahí ejecutas el comando de creación de proyectos.

¿Qué tipos de proyectos puedes crear con Symfony new?

El comando base es symfony new seguido del nombre y, opcionalmente, una bandera que define el tipo. Estos son los tres tipos que puedes generar:

  • Proyecto API: estructura optimizada para exponer recursos vía API. Trae el componente ideal para trabajar endpoints desde el inicio.
  • Proyecto web app: estructura completa para desarrollo web, con muchas carpetas y paquetes preinstalados.
  • Proyecto básico o minimalista: se crea sin pasar ninguna opción extra. Trae solo lo esencial.

¿Qué diferencia hay entre web app, API y minimalista?

Al abrir los tres proyectos en Visual Studio Code, las diferencias saltan a la vista [03:30]:

  • El proyecto web app tiene muchas carpetas y archivos. Si revisas su composer.json, verás un montón de paquetes instalados. Es la opción más cargada.
  • El proyecto API es más sencillo, pero ya incluye el componente que transforma tu sistema en un servidor de recursos.
  • El proyecto minimalista tiene pocas carpetas y un composer.json con lo mínimo necesario para arrancar.

Lo interesante es que puedes empezar con uno básico y, a medida que instales paquetes, convertirlo en un proyecto web completo. Symfony está pensado para crecer así.

¿Cuál proyecto elijo si estoy aprendiendo Symfony? El proyecto básico o minimalista. Tiene pocas carpetas, evita distracciones y te deja enfocarte en escribir código en lugar de navegar archivos que aún no entiendes.

¿Qué carpetas debes conocer en un proyecto Symfony?

Una vez abierto el proyecto minimalista en tu editor, conviene identificar las carpetas y archivos clave antes de empezar a programar [04:30]:

  • src: aquí vive tu código. Es donde vas a trabajar la mayor parte del tiempo.
  • config: contiene la configuración que Symfony aplica por ti. Se revisa de vez en cuando para entender qué hace el framework por debajo.
  • public: contiene el archivo index.php, que cumple con el patrón front controller. Toda petición pasa por ahí. Es muy importante, pero no se modifica.
  • var: almacena lo que Symfony necesita en tiempo de ejecución, como caché y logs.
  • vendor: guarda todos los paquetes instalados, incluyendo los componentes propios de Symfony.
  • composer.json: declara las dependencias del proyecto. En el minimalista trae lo mínimo para arrancar.

También hay un ejecutable de consola que vas a usar muchísimo para generar código y correr comandos, pero ese archivo tampoco se modifica directamente.

¿Qué es el patrón front controller en Symfony?

Es el patrón que hace que todas las peticiones HTTP entren por un único punto, en este caso public/index.php. Desde ahí Symfony decide qué controlador, qué ruta y qué respuesta corresponde a cada solicitud. Esto centraliza el flujo y simplifica el manejo de seguridad, rutas y configuración.

La práctica recomendada es clara: realiza las tres instalaciones, abre cada proyecto y compara sus estructuras. Cuando veas las diferencias en composer.json y en la cantidad de carpetas, vas a entender por qué el proyecto básico es el mejor punto de partida.

¿Cuál de los tres tipos vas a probar primero? Cuéntame en los comentarios qué proyecto quieres construir con Symfony.