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
- 00 - Introducción
- 01 - Instalación y estructura
- 02 - Rutas y controladores
- 03 - Plantillas Twig
- 04 - Assets y frontend
- 05 - Doctrine: entidades
- 06 - Doctrine: relaciones y consultas
- 07 - Formularios
- 08 - Validación
- 09 - Servicios e inyección de dependencias
- 10 - Seguridad
- 11 - Eventos, Messenger y Mailer
- 12 - APIs REST
- 13 - Testing
- 14 - Comandos de consola
- 15 - Configuración y despliegue
- 16 - Proyecto final