Curso de Symfony 3

Nuevo

Curso a distancia

Si eres desarrollador, jefe de proyecto o director técnico ahora puedes ampliar tus conocimientos con este curso de Symfony 3 a distancia, de forma que puedas conocer mejor este framework y ampliar tus conocimientos en torno al desarrollo de sitios web PHP. Además, al ser a distancia puedes compaginar el curso con cualquier otra actividad.

265 €

pago-seguro

895 €

Curso a distancia + módulo de Prácticas

Añade prácticas a este curso

Ahora tienes la posibilidad de añadir un módulo de prácticas formativas al contratar este curso. Disfruta de un periodo de estancias formativas en una empresa, el cual te permitirá conocer de cerca la realidad de la profesión. Matricúlate hoy mismo y actualiza tu currículo en un abrir y cerrar de ojos.

Descripción del curso

De esta forma, este curso de Symfony 3 a distancia te acerca a los principales componentes de este frameworlk PHP de referencia en la actualidad, permitiéndote la posibilidad de adquirir conocimientos al respecto para crear un sitio web, al tiempo que sepa cómo dominar el funcionamiento al completo.

De esta forma, este curso de Symfony 3 a distancia te acerca al estudio de cuestiones como la arquitectura del framework; la creación de pruebas unitarias y funcionales; la gestión de formularios o las interacciones con una base de datos, entre otras muchas cosas.

Por ello, si necesitas ampliar tus conocimientos sobre desarrollo de sitios web PHP con una correcta estructura y con un rendimiento óptimo, este curso de Symfony 3 a distancia es el que esperabas. ¡No te quedes sin él!

Somos el único centro que aseguramos las prácticas mediante contrato.

Información adicional

ModalidadA distancia
Precio265€
Duración250 horas

Reseñas

Temario del curso

Introducción
1. Introducción
2. Público objetivo
3. ¿ Por qué un framework ?
3.1 header() y echo
3.2 Evitar la globalidad
3.3 No reinventar la rueda
4. ¿ Por qué Symfony ?
5. Requisitos previos
6. Objetivos del libro

Arquitectura del framework
1. El patrón de diseño MVC
1.1 Definiciones
1.1.1 La vista
1.1.2 El modelo
1.1.3 El controlador
1.2 En la práctica
1.2.1 El controlador front
1.2.2 El enrutamiento
1.2.3 El controlador y el modelo
1.2.4 La vista
2. Arquitectura de Symfony
2.1 Esquema
2.2 El Service Container
2.3 ¿ Un framework MVC ?
2.4 Una flexibilidad a toda prueba
3. Los bundles
3.1 Concepto
3.2 Un ecosistema maduro
4. Los entornos
4.1 Principio
4.2 En la práctica
4.2.1 Contexto HTTP
4.2.2 Contexto CLI (Command Line Interface)
4.2.3 Ejemplos de diferencias según el entorno

Empezar con Symfony
1. Crear un proyecto en Symfony
1.1 La edición “estándar”
1.2 Requisitos previos
1.3 Instalación con el instalador Symfony (Linux y Mac OS)
1.4 Instalación con Composer
1.4.1 Instalar Composer
1.4.2 Crear un proyecto
1.4.3 Las versiones
2. Descubrir Symfony
2.1 Configurar su servidor web
2.1.1 Servidor web PHP
2.1.2 Apache y Nginx
2.2 Estructura de la aplicación
3. La consola
3.1 Ubicación
3.2 Los comandos
3.2.1 Listar los comandos disponibles
3.2.2 Ejecutar un comando
3.3 Las opciones
3.4 Los argumentos
3.5 El comando help
3.6 Ejecutar rápidamente comandos
3.6.1 Los accesos directos
3.6.2 El completado automático
4. La autocarga de clases
4.1 El estándar PSR-4
4.2 Otros mecanismos
4.3 El archivo vendor/autoload.php
5. Instalar un bundle
5.1 Bundle de aplicación específico al proyecto
5.1.1 Presentación
5.1.2 Crear un bundle
5.2 Bundle de terceros

Enrutamiento y controlador
1. Entender el enrutamiento
1.1 Definición
1.2 El directorio web y el controlador front
1.3 Una consulta, una acción
2. Formato de las rutas
2.1 Diferentes métodos
2.2 Las anotaciones
3. Configurar el path
3.1 El path /hello/world
3.2 Entender la notación del controlador
3.3 Elegir su formato
3.4 Importar sus rutas desde archivos externos
3.5 Utilizar argumentos de sustitución
3.6 Entender el orden de carga de las rutas
3.7 Añadir prefijos a las rutas
3.8 Añadir restricciones
4. Enrutamiento por nombre de dominio
4.1 Requisitos previos
4.2 Ejemplo
4.3 Explicaciones
5. El controlador
5.1 Recuperar un servicio
5.2 Utilizar los “argumentos mágicos”
5.2.1 Argumentos de sustitución de las rutas
5.2.2 Ejemplos
5.3 Generar una URL
5.4 Realizar una redirección
5.5 Redirección interna
5.6 Enviar las páginas de error
5.6.1 El controlador
5.6.2 La vista

La inyección de dependencias
1. Una alternativa al Singleton
1.1 Presentación del Singleton
1.2 Ejemplo
1.3 Un patrón de diseño a utilizar con cuidado
2. La inyección de dependencias
2.1 La inyección de dependencias por el constructor
2.2 La inyección de dependencias por setter (conmutador)
2.3 La inyección de dependencias por propiedad
2.4 Las ventajas
2.5 Una ejecución más compleja
3. El Service Container
3.1 Los servicios
3.2 Explicaciones a través de un servicio X
4. Crear un servicio y configurar sus inyecciones
4.1 Crear un servicio
4.2 Inyección por constructor
4.3 Inyección por método
4.4 Inyección por propiedad
4.5 Inyección automática con autowiring
4.6 Utilizar argumentos
4.7 Crear servicios “lazy”
5. Las extensiones de bundle
5.1 El directorio DependencyInjection
5.2 Las definiciones de servicios desde un bundle
5.3 La configuración
5.3.1 Definir una arborescencia
5.3.2 Las diferentes etapas del tratamiento de la configuración
5.3.3 Recuperar la configuración validada
5.4 “Compiler Passes
5.4.1 Concepto
5.4.2 Los tags
5.4.3 El Compiler Pass

Las plantillas con Twig
1. Un lenguaje accesible
1.1 Visión general
1.2 ¿ Por qué un nuevo lenguaje ?
1.3 Puesta en práctica
1.4 Observaciones sobre la utilización
1.5 Notaciones de las plantillas
1.6 La anotación @Plantilla
2. Layouts (plantillas de página) y blocks
3. Estructuras de control y tags
3.1 Las condiciones
3.2 Los bucles
3.3 Crear y modificar variables
3.4 Twig y el escapado
3.4.1 El tag autoescape
3.4.2 Escapado unitario
3.4.3 Modificar la estrategia global (usuarios avanzados)
3.5 Incluir plantillas
4. Los filtros y las funciones
4.1 Los filtros
4.1.1 Utilización y sintaxis
4.1.2 Cadenas de caracteres
4.1.3 Escape
4.1.4 La codificación
4.2 Las funciones
4.2.1 Twig y el enrutamiento
4.2.2 Depuración con la función dump
5. Recursos públicos (imágenes, hojas de estilo, scripts JS...)
5.1 ¿ Cómo se sincronizan estos recursos ?
5.2 Referenciar los recursos públicos desde una plantilla

Las bases de datos con Doctrine2
1. Conceptos de DBAL, entidad y ORM
1.1 DBAL
1.2 Entidad
1.3 ORM
2. Instalar y configurar DoctrineBundle
2.1 Instalación
2.2 Configuración
3. Las entidades y su mapping
3.1 Caso práctico: listar los libros
3.1.1 La entidad
3.1.2 El mapping
3.2 Definir una entidad con @ORMEntity
3.3 Gestionar las columnas de la tabla con @ORMColumn
3.3.1 Name
3.3.2 Type
3.3.3 length
3.3.4 unique
3.3.5 nullable
3.3.6 precision y scale
3.4 @ORMTable
3.5 Las claves primarias
3.6 Configurar los índices
3.6.1 @ORMIndex
3.6.2 @ORMUniqueConstraint
3.7 Las relaciones (claves extranjeras)
3.7.1 @ORMOneToOne
3.7.2 @ORMManyToOne
3.7.3 @ORMManyToMany
3.7.4 Relaciones bidireccionales
3.7.5 Reparar los errores de mapping
4. Utiliza la EntityManager
4.1 Inserción de datos
4.2 Modificación de datos
4.3 Eliminación de datos
4.4 Otras acciones de la EntityManager
4.4.1 refresh()
4.4.2 detach()
4.5 Las operaciones en cascada
5. Los repositorios y el DQL
5.1 Los repositorios
5.1.1 Una función de centralizador
5.1.2 Los métodos básicos del repository
5.1.3 Los métodos personalizados del repository
5.2 El DQL
5.2.1 SELECT
5.2.2 FROM
5.2.3 JOIN y LEFT JOIN
5.2.4 WHERE
5.2.5 ORDER BY
5.2.6 Los límites
5.2.7 Los límites y la paginación
5.3 El QueryBuilder
6. Algunos trucos
6.1 Utilización del @ParamConverter
6.2 Las extensiones Doctrine
6.2.1 Instalación
6.2.2 Utilización de un slug en una entidad

El administrador de eventos
1. Una historia de escuchas
1.1 El dispatching
1.2 Los listeners
2. Los eventos del Kernel
2.1 Los eventos
2.2 Ejemplo: realizar tareas asíncronas
3. Los eventos de la consola
3.1 Requisitos previos
3.2 Los eventos

Utilizar los formularios
1. Una librería MVC
1.1 El modelo
1.2 El controlador
1.3 La vista
2. Funcionamiento del componente
2.1 El objeto “Form”
2.1.1 Submit
2.1.2 Validación
2.1.3 Vista
2.2 Los tipos
2.3 Las opciones
2.4 Los objetos “Form” y “FormBuilder”
2.4.1 El FormBuilder
2.4.2 Estructura del objeto Form
2.5 El mapping con el objeto de la capa Modelo
2.6 Las diferentes representaciones de los valores
2.6.1 Transformación de los datos
2.6.2 Ilustración con el tipo Date
3. Los tipos
3.1 La herencia
3.2 FormType
3.2.1 label
3.2.2 label attr
3.2.3 data
3.2.4 required
3.2.5 disabled
3.2.6 mapped
3.2.7 property_path
3.2.8 attr
3.2.9 trim
3.2.10 error_bubbling
3.3 TextType
3.4 PasswordType
3.5 RepeatedType
3.5.1 type
3.5.2 first_options y second_ options
3.5.3 options
3.5.4 first_name
3.5.5 second_name
3.5.6 invalid_message
3.6 ChoiceType
3.6.1 choices
3.6.2 expanded y multiple
3.6.3 placeholder
3.6.4 preferred_choices
3.6.5 Tipo similares
3.7 EntityType
3.7.1 class
3.7.2 choice_label
3.7.3 query_builder
3.7.4 group_by
3.7.5 em
3.8 DateType
3.8.1 widget
3.8.2 format
3.8.3 model_timezone
3.8.4 view_timezone
3.8.5 years
3.8.6 months
3.8.7 days
3.8.8 placeholder
3.8.9 Tipos similares
3.9 FileType
3.9.1 multiple
3.9.2 Recuperar los archivos
3.9.3 Tratar los archivos
3.10 CheckboxType
3.11 SubmitType, ResetType y ButtonType
4. Validación de los datos
4.1 Objetivo
4.2 Utilización
4.2.1 Restricciones
4.2.2 Configuración de las restricciones
4.2.3 Los diferentes formatos de configuración
4.2.4 Las opciones
4.2.5 Validación de un objeto fuera del contexto de un formulario
4.3 Lista de restricciones y sus opciones
4.3.1 NotBlank y NotNull
4.3.2 IsNull y Blank
4.3.3 IsTrue, IsFalse
4.3.4 Type
4.3.5 Email, Url y Ip
4.3.6 Regex
4.3.7 Length, Count
4.3.8 Range
4.3.9 Comparaciones
4.3.10 Fechas
4.3.11 File
4.3.12 Imagen
4.3.13 Choice
4.3.14 UniqueEntity
4.3.15 Datos financieros
4.3.16 Callback
4.3.17 All
4.3.18 Valid
4.4 Grupos de validación
5. Crear formularios reutilizables
5.1 La clase AbstractType
5.2 Utilizar un formulario definido en una clase
5.2.1 Instanciación manual
5.2.2 Con la inyección de dependencias
6. Personalizar la representación - temas de formularios
6.1 Visualizar el formulario manualmente
6.1.1 form_start()
6.1.2 form_end()
6.1.3 form_widget()
6.1.4 form_errors()
6.1.5 form_label()
6.1.6 form_row()
6.1.7 form_rest()
6.1.8 form_enctype()
6.1.9 Arborescencia de las partes de formularios
6.2 Crear temas
6.2.1 Formulario de ejemplo
6.2.2 Crear y asociar un tema de formularios
6.2.3 Entender el nombre de los blocks

La seguridad
1. Presentación
2. Autenticación
2.1 Cortafuegos
2.2 Cortafuegos para recursos estáticos/desarrollo
2.3 Autenticación HTTP
2.4 Autenticación por formulario de conexión
2.5 Desconexión
3. Usuarios y roles
3.1 Recuperar el usuario actual
3.2 El usuario
3.3 Los proveedores de usuarios
3.3.1 En memoria
3.3.2 Proveedor de usuarios de bases de datos
3.3.3 Proveedor de usuarios personalizado
3.3.4 Notas adicionales
3.4 Cifrado de las contraseñas
3.4.1 Codificadores
3.4.2 Hash
3.4.3 Cifrar una contraseña
3.5 Los roles
4. Autorizaciones
4.1 Los roles, en el núcleo del proceso
4.2 Comprobar el rol del usuario
4.3 Securizar una acción
4.4 Securizar una sección de la aplicación
4.5 Securizar según otros criterios
4.6 Para ir más allá

Logging y monitoring
1. Crear logs con Monolog
1.1 Logging
1.2 Monolog
1.2.1 El estándar PSR-3
1.2.2 MonologBundle
1.3 El servicio logger
1.4 El archivo de logs
1.4.1 Identificar la causa de un error
1.4.2 El problema
1.5 Los administradores (handlers)
1.5.1 Definir varios administradores
1.5.2 Enviar los logs por correo electrónico
1.5.3 Utilizar un buffer
1.5.4 Añadir información adicional
1.6 Las canales (channels)
1.6.1 Añadir sus propios canales
1.6.2 Enviar un registro a un canal dado
1.6.3 Configurar los administradores por canales
1.6.4 Gestión de los errores 404
2. El monitoring con Prometheus y Grafana
2.1 Un aliado proactivo del logging
2.2 Preparación de una aplicación Symfony para Prometheus
2.3 Instrumentalizar las métricas
2.4 Para ir más allá

Probar su aplicación Symfony
1. Las pruebas unitarias y funcionales
1.1 Concepto
1.1.1 El automóvil
1.1.2 Las pruebas en Symfony
1.2 Instalación de PHPUnit
2. Pruebas unitarias
2.1 Ejecutar las pruebas
2.2 Ejecutar una parte de las pruebas
3. Pruebas funcionales
3.1 Probar una acción
3.2 El objeto Client
3.3 El objeto Crawler
3.4 Hacer submit de un formulario
3.5 Para ir más allá

Mejorar el rendimiento de su aplicación
1. El cacheado de las páginas
1.1 Alrededor del protocolo HTTP
1.2 El proxy inverso (o“reverse proxy”)
1.2.1 HttpCache
1.2.2 Nginx
1.2.3 Varnish
1.3 Los encabezados
1.4 Las respuestas públicas y privadas
1.5 La expiración
1.5.1 El encabezado Expires
1.5.2 Las directivas max-age y s-max-age
1.5.3 La anotación @Cache
1.6 La validación
1.6.1 Por fecha con Last-Modified
1.6.2 Por hash del encabezado ETag
1.7 Las ESI
1.7.1 Activación
1.7.2 Generar una etiqueta ESI
2. La autocarga de las clases
2.1 Generar un classmap
2.2 Englobar el cargador de clase de Composer
3. La caché con Doctrine
3.1 Los diferentes tipos de caché
3.1.1 La caché de los metadatos
3.1.2 El caché de las consultas
3.1.3 La caché de los resultados
3.2 Configuración
4. La caché de anotaciones
5. Las sesiones
6. La extensión PHP para Twig
6.1 Instalación a través PEAR
6.2 Instalación desde las fuentes
7. Otras optimizaciones
7.1 Seleccionar su SAPI PHP
7.1.1 ¿ Qué es una SAPI ?
7.1.2 Módulo del servidor
7.1.3 CGI
7.1.4 FastCGI
7.1.5 Conclusión
7.2 Cacheado de OPCodes
7.2.1 Los OPCodes
7.2.2 Una etapa pesada
7.2.3 El cacheado
7.3 La compresión de las respuestas
7.3.1 Compresión gzip
7.3.2 Precompresión
7.4 Optimización de las imágenes
7.4.1 Validación
7.4.2 Expiración
7.4.3 Otras técnicas
7.5 Consejos de Google
8. Prueba del rendimiento de un sitio web
8.1 Del lado servidor
8.1.1 Apache Bench
8.1.2 Xhprof
8.2 Del lado cliente

Solicita información

 

(si vives fuera de España, añade el prefijo de tu país)

(si vives fuera de España selecciona No residente en España)
* Campos obligatorios
Política de privacidad

1Según REGLAMENTO (UE) 2016/679 DEL PARLAMENTO EUROPEO Y DEL CONSEJO de 27 de abril de 2016 relativo a la protección de las personas físicas en lo que respecta al tratamiento de datos personales y a la libre circulación de estos datos y por el que se deroga la Directiva 95/46/CE (Reglamento general de protección de datos) RGPD, el responsable del tratamiento Delena Formación SL. La finalidad del formulario es gestión de las matrículas de los cursos a distancia online. Sus datos no se cederán a un tercero, salvo imperativo legal. Además, los datos han sido recogidos por el propio interesado en los cursos. La legitimación legal es por el consentimiento del interesado. Las personas interesadas Tiene derecho a acceder, rectificar y suprimir los datos, así como otros derechos, indicados en la información adicional, que puede ejercer puede ejercitar sus derechos en la dirección de la empresa. Puede consultar información adicional y detallada sobre Protección de Datos en este enlace.

El contenido del manual se encuentra orientado hacia la adquisición de formación teórica complementaria está sujeto a posibles variaciones de la editorial. En ningún caso proporcionamos programas y licencias en el material del curso. En los cursos multimedia, el contenido es formativo y explicativo sobre el temario. Solo para Windows. Formación no reglada sin carácter oficial. Ciertas profesiones requieren una titulación universitaria u oficial que puedes consultar en la web del Ministerio de Educación y en el Instituto Nacional de Cualificaciones. Precio válido salvo error tipográfico.

Cursos relacionados

Volver arriba

Formulario de Contacto