Curso de Desarrollo Web con Symfony 8

Bienvenido al Curso completo de Symfony 8, uno de los frameworks PHP más utilizados en el desarrollo profesional. Este curso está pensado para personas que ya conocen PHP con programación orientada a objetos y quieren aprender a construir aplicaciones web y APIs robustas, mantenibles y listas para producción.

💡 Consejo: Si todavía no dominas PHP orientado a objetos, namespaces y Composer, te recomendamos completar antes el Curso de PHP 8.5.

¿Qué vas a aprender?

Al finalizar este curso serás capaz de:

  • Comprender la arquitectura de Symfony: kernel, bundles, contenedor de servicios y ciclo petición-respuesta
  • Crear proyectos con Symfony CLI y Composer y entender su estructura
  • Definir rutas y controladores con atributos PHP
  • Construir vistas con Twig: herencia de plantillas, filtros, funciones y componentes
  • Gestionar el frontend con AssetMapper, Stimulus y Turbo
  • Modelar tu base de datos con Doctrine ORM: entidades, migraciones, relaciones y consultas
  • Crear formularios y validar datos
  • Dominar la inyección de dependencias y el autowiring
  • Proteger tu aplicación: usuarios, login, roles y voters
  • Usar eventos, Messenger y Mailer
  • Desarrollar APIs REST con el Serializer y una introducción a API Platform
  • Escribir tests unitarios y funcionales
  • Crear comandos de consola y desplegar en producción

Versión del curso

Este curso utiliza Symfony 8.1 (versión estable actual), que requiere PHP 8.4 o superior. Casi todo lo explicado es válido también para Symfony 7.4 LTS, la versión con soporte a largo plazo.

Estructura del curso

El curso se divide en 17 módulos organizados de forma progresiva:

Bloque 1: Fundamentos de Symfony (Módulos 00-04)

Módulo Tema Descripción
00 Introducción Qué es Symfony, historia, componentes, versiones y ciclo de soporte, patrón MVC
01 Instalación y estructura Symfony CLI, creación de proyectos, estructura de carpetas, entornos, Maker Bundle
02 Rutas y controladores Atributo #[Route], parámetros, Request y Response, redirecciones, MapQueryParameter
03 Plantillas Twig Sintaxis, herencia, includes, filtros, funciones, macros y Twig Components
04 Assets y frontend AssetMapper, importmap, Bootstrap, Stimulus y Turbo

Bloque 2: Datos y formularios (Módulos 05-08)

Módulo Tema Descripción
05 Doctrine: entidades Configuración de BD, entidades, migraciones, EntityManager, CRUD
06 Doctrine: relaciones y consultas ManyToOne, OneToMany, ManyToMany, repositorios, QueryBuilder, DQL, fixtures
07 Formularios Form types, renderizado en Twig, procesamiento, tipos de campo, temas de formulario
08 Validación Restricciones, grupos de validación, restricciones personalizadas, MapRequestPayload

Bloque 3: Arquitectura y seguridad (Módulos 09-11)

Módulo Tema Descripción
09 Servicios e inyección de dependencias Contenedor de servicios, autowiring, configuración, parámetros, variables de entorno
10 Seguridad Usuarios, registro, login, roles, control de acceso, voters
11 Eventos, Messenger y Mailer EventDispatcher, subscribers, mensajes asíncronos, envío de correos

Bloque 4: Symfony profesional (Módulos 12-16)

Módulo Tema Descripción
12 APIs REST JsonResponse, Serializer, grupos, códigos HTTP, introducción a API Platform
13 Testing PHPUnit, tests unitarios, WebTestCase, tests de base de datos y de formularios
14 Comandos de consola Comandos propios, argumentos y opciones, Scheduler, tareas programadas
15 Configuración y despliegue Entornos, secretos, caché, rendimiento, Docker y puesta en producción
16 Proyecto final Aplicación completa con Doctrine, formularios, seguridad y API

Requisitos

  • Conocimientos de PHP 8 con programación orientada a objetos
  • Nociones de HTML, CSS y SQL
  • Manejo básico de Composer y de la terminal
  • PHP 8.4 o superior, Composer y Symfony CLI instalados (se explica en el módulo 01)

Convenciones utilizadas

A lo largo del curso encontrarás estos indicadores:

📘 Concepto: Explicación teórica de un concepto importante.

💻 Ejemplo: Código de ejemplo que puedes copiar y ejecutar.

✏️ Ejercicio: Práctica para que resuelvas por tu cuenta.

⚠️ Importante: Información crucial que debes recordar.

💡 Consejo: Trucos y buenas prácticas profesionales.


Table of contents