Emagister S.L. (responsable) tratará tus datos personales con la finalidad de gestionar el envío de solicitudes de información y comunicaciones promocionales de formación con tu consentimiento. Ejerce tus derechos de acceso, supresión, rectificación, limitación, portabilidad y otros, según se indica en nuestra política de privacidad.
Objetivos
En este curso aprenderás los muchos cambios introducidos en Symfony 5 respecto a la versión anterior (qué hay nuevo, y qué está deprecado, la nueva estructura de directorios, Flex, etc.). También profundizaremos en aquellos aspectos de Symfony que no son tan habituales, con los que conseguir explotar al máximo toda la potencia del mejor framework para PHP. Además de ver lo habitual (Twig, rutas y controladores, Doctrine y formularios...), veremos en profundidad temas relativos al Kernel, Event Dispatcher, seguridad, profiler y depuración, reverse Proxy, etc.). Puedes ver el temario más abajo. Todo ello se verá en sesiones de varios vídeos cortos, acompañados de ejercicios y tests supervisados y corregidos por el profesor, para que no te quedes en la superficie y lo pongas en prática.
Requisitos
Conocimientos básicos de Symfony 2.x, 3.x ó 4.x Ordenador preferiblemente con dos monitores Editor de código recomendado PHPStorm
Temario completo de este curso
1. Empezando con Symfony
1.1 Instalación de Symfony
1.2 La nueva estructura de directorios de Symfony 4/5
2. Variables de entorno y configuración de Symfony
2.1 Los archivos de configuración
2.2 Los entornos y las variables de entorno
2.3 Creación de un entorno personalizado
3. Symfony Flex
3.1 Cómo funciona Flex
3.2 Las Recipes
3.3 Actualizar aplicaciones existentes para que utilicen Flex
4. Enlazando rutas con controladores
4.0 Introducción
4.1 Restricción de los valores de los parámetros
4.2 Parámetros especiales
4.3 Redirecciones
4.4 Depuración de rutas
4.5 Restricción de rutas por Host
4.6 Restricción de rutas por método
4.7 Restricción de rutas por protocolo
4.8 Generación de URLs
5. El sistema de plantillas Twig
5.0 Introducción
5.1 Output escaping
5.2 Cómo depurar variables en las plantillas
5.3 Cómo generar otros formatos de salida (css, javascript, xml…)
5.4 Cómo inyectar variables globales
5.5 Sobrescribir plantillas de bundles de terceros
5.6 Crear plantillas sin controladores
5.7 Cómo crear una extensión de Twig
6. Los controladores
6.0 Introducción
6.1 Manejar páginas de error y páginas 404
6.2 La sesión
6.3 Los mensajes Flash
6.4 El objeto Request
6.5 El objeto Response. Cómo crear diferentes tipos de respuestas (html, json, file…)
6.6 Depuración en los controladores
7. Doctrine
7.0 Introducción
7.1 Mapeo de relaciones
7.2 Transacciones
7.3 El lenguaje de consultas DQL
7.4 El Objeto Doctrine Query Builder
7.5 Los repositorios
7.6 Ejecutar consultas con SQL Nativo
7.7 Ingeniería inversa con Doctrine
8. Servicios
8.1 El patrón de inyección de dependencias
8.2 El service container
8.3 Creación y configuración de servicios
9. Eventos
9.1 El Event Dispatcher
9.2 Ejemplo de disparo de un evento
9.3 Creación de event listeners
9.4 Creación de event subscribers
9.5 Ejemplo de suscripción a un evento
9.6 Eventos del Kernel de Symfony
9.7 Consideraciones finales
10. Formularios
10.0 Introducción
10.1 Formularios anidados
10.2 Eventos de formulario
10.3 Formulario dinámico basado en los propios datos del formulario
10.4 Formulario dinámico basado en el usuario
10.5 Temas personalizados
10.6 Validaciones personalizadas
11. La consola de comandos
11.0 Introducción
11.1 Cómo crear comandos personalizados
11.2 Los console Helpers
12. Seguridad
12.0 Introducción
12.1 Autenticación
12.2 Roles
12.3 Autorización
12.4 Acceso al objeto User
12.5 Las anotaciones @IsGranted y @Security
12.6 Los Voters
12.7 Cómo hacer logout
13. Depuración en Symfony. El profiler
13.0 Introducción
13.1 Las secciones del Profiler
13.2 Cómo crear un Data Collector personalizado
13.3 Cómo acceder a los datos del profiler programáticamente
13.4 Cómo deshabilitar el profiler en una acción concreta
13.5 Cómo cambiar la ubicación del Profiler Storage
14. Traducciones
14.0 Instalación y configuración
14.1 El proceso de traducción
14.2 Message Placeholders
14.3 Manejo de plurales
14.4 Los ficheros de traducciones
14.5 Manejo de la localización del usuario
14.6 Traducción del contenido de la base de datos
14.7 Traducción de mensajes de validación
14.8 Depuración de traducciones
15. Testeo de aplicaciones Symfony
15.0 Introducción
15.1 Tests Unitarios
15.2 Tests funcionales
15.3 El objeto Test Client
15.4 El objeto Crawler
15.5 Creación de Fixtures
15.6 Testeo de comandos de consola
15.7 Testeo de repositorios de Doctrine
16. Envío de emails
16.0 Introducción
16.1 Configuración
16.2 Envío de emails
16.3 Cómo trabajar con emails durante el desarrollo
16.4 Cómo testear si un email ha sido enviado
16.5 Cómo configurar varios mailers
16.6 Envío asíncrono de emails
17. Gestión avanzada de recursos CSS y JavaScript
17.0 Introducción
17.1 Instalación de WebPack Encore
17.2 Configuración
17.3 Manejo de archivos Sass y Less
17.4 Source Maps
17.5 Manejo de archivos TypeScript
17.6 Versionado de assets
17.7 CDNs
17.8 Cómo pasar información de Twig a JavaScript
18. El sistema de Caché
18.0 Introducción
18.1 El comando cache:clear
18.2 Cache Programada
18.3 "More Advanced Caching" (PSR-6)
18.5 Cache Contracts
19. El sistema de Logs
19.0 Introducción
19.1 Cómo escribir mensajes de log con Logger
19.2 Configuración
19.3 El manejador especial fingers_crossed
19.4 Configuración de log con ficheros rotativos
19.5 Cómo configurar Monolog para enviar correos
19.6 El manejador especial group
19.7 Configuración de canales
19.8 Cómo deshabilitar la precisión de microsegundos para ganar rapidez
20. El serializer de Symfony
20.0 Introducción
20.1 Uso del Serializer
20.2 Cómo manejar referencias circulares
20.3 Cómo manejar la profundidad de la serialización
20.4 Normalizers
20.5 Encoders
20.6 Cómo configurar qué atributos se serializan
20.7 Cómo convertir nombres de propiedades al serializar y des-serializar
21. El serializer de Symfony
21.0 Introducción
21.1 Creación de un Workflow
21.2 Cómo trabajar con Workflows
21.3 Funciones de Twig y ejemplo práctico
21.4 Eventos
21.5 Cómo depurar un Workflow
22. Creación de bundles
22.0 Estructura de directorios de un bundle
22.1 Cómo sobrescribir parte de un bundle
22.2 Creación de recipes
23. Deployment
23.0 Deployment básico
23.1 Tareas post-deployment
23.2 Cómo configurar Symfony para trabajar detrás de un balanceado de carga o de un reverse proxy
24. Cómo mejorar el rendimiento
24.0 Introducción
24.1 Instalar APCu Polyfill
24.2 Configurar el Service Container en un único fichero
24.3 OPCache
24.4 Configurar OPCache con Preloading
24.5 Configurar el PHP realpath Cache
24.6 Optimizar Composer Autoloader
25. Actualización de un proyecto Symfony
25.1 Actualización de un proyecto Symfony 3 a Symfony 4
25.2 Actualización de un proyecto Symfony 4 a Symfony 5