Programación Backend en PHP Laravel

En este curso aprenderás a crear aplicaciones Backend con el framework Laravel. Curso enfocado a que aprendas de manera rápida a crear APIs.
Puedes adquirir el curso comprándolo con un solo pago sin límite de tiempo en el botón de aquí abajo, o puedes Suscribirte a Metal Code y acceder a todos los cursos por una cuota temporal.
8.00 USD
12.00 horas
189 clases
Lo que aprenderás
- PHP
- Laravel
- Crear aplicaciones Backend
- Conceptos del Backend
- Autenticación con JWT
- Programación Orientada a Objetos
- Programación Funcional
- Conceptos de Arquitectura de Software
- Reglas de negocio
- Manejo de Middlewares
- Pruebas unitarias
- Pruebas de características
- Tareas en segundo plano
Clases del curso
Introducción
Bienvenida al curso
Introducción a PHP (sintaxis básica)
Instalación de XAMPP
Variables
Tipos de dato
Estructura de control "if"
Estructura de control "else" y "else if"
Estructura de control "switch"
Estructura de control ternaria
Bucle "for"
Bucle "while"
Bucle "do while"
Funciones
Funciones existentes en PHP
Introducción a PHP (arrays)
Array indexados
Array asociativos
Estructura de control "foreach"
Arrays multidimensionales
Funciones comunes para Arrays
Programación Orientada a Objetos en PHP
Clases y Objetos
Métodos
Constructores
Destructores
Propiedades y métodos estáticos
Clases con tipado
Union Types
Herencia
Encapsulamiento
Métodos Getter y Setter
Clases Abstractas
Interfaces
Traits
Polimorfismo - Sobreescritura de métodos
Polimorfismo - Interfaces
Clases con propiedades dinámicas con "stdClass"
Conversión de Arrays a Objetos
JSON
Serialización de Objetos a JSON
Namespace
Programación Funcional en PHP
Función Pura
Recursividad
Inmutabilidad
Función de Primera Clase
Función de Orden Superior
Arrow Function
Captura de Variables Externas con "use"
Programación Backend
¿Qué es Programación Backend?
HTTP
Introducción a Laravel
¿Qué es Laravel?
Instalación de Composer
Instalación de Laravel
Creación de App Laravel
Estructura de Laravel
Patrón Arquitectónico MVC (Modelo-Vista-Controlador)
Creación del primer Endpoint
Rutas y Controladores
Creación de Controlador
Envió de Parámetros en Ruta
Solicitudes HTTP por Método GET
Códigos de Respuestas HTTP desde Laravel
Constantes de Symfony para Codigos de Respuesta HTTP
Solicitudes HTTP por Método POST
Solicitudes HTTP por Método PUT
Solicitudes HTTP por Método DELETE
Migrations
Conexión a Base de Datos
Creación de migración
Ejecución de migración
Realizar cambios a tablas con migraciones
Revertir cambios de migraciones
Crear Foreign Keys con migraciones
Seeding
Creación de Seeder
Resetear la Base de Datos
Crear Seeder para Tablas con Foreign Keys
Uso de Faker para generar datos Aleatorios
Models y Factories
Models
Datos rellenables en Models
Indicar relaciones entre Models
Creación de Factory
Ejecución de Factory
Creación de Factories con relaciones
Eloquent ORM
Obtener información de la Base de Datos
Obtener un registro por su Id
Seleccionar campos y Ordenar resultados
Filtrado de información
Operador LIKE en Eloquent
Operador Or en filtrado de información
Búsqueda Dinámica Avanzada
Join
GroupBy
CRUD en Laravel
Obtener información
Paginado de Información
Guardado de información
Validar información
Personalización de errores de validación
Ocultar información retornada por el Model
Editar información
FormRequest para validar información
Retornar Errores como JSON desde FormRequest
Creación de Clase General para sobrescribir métodos de FormRequest
Eliminación de información
Modelos con eliminación lógica
Middleware
Creación de Middleware
Transformación de información de Solicitudes
Alias
Recibir valores en el Middleware
Obtener información de la solicitud HTTP
Logging
Terminable Middleware
Seguridad con JWT
¿Qué es JWT?
Instalación de biblioteca tymon/jwt-auth
Configuración en Laravel de tymon/jwt-auth
Configuración de driver de Autenticación de Laravel
Adaptar Model User para poder usar JWT
Creación de Requests para validar Autenticación
Registro de Usuarios
Autenticación de Usuarios (Login)
Retornar tiempo de Expiración
Asignación de Middleware de JWT a Rutas
Identificar Usuario por el Token
Invalidar Token (Logout)
Funcionamiento del Cache de Laravel
Refresh Token
Claims
Service Container
¿Qué es el Service Container?
Inyección de Clases con cero dependencias
Inyección de Clases que Implementan Interfaces
Inyección de Clases con Constructor
Inyección de Clases con Dependencias de otras clases Inyectadas
Context Binding
Binding como Singleton
Obtener manualmente objetos del Service Container
Events y Listeners
¿Qué es un Event?
¿Qué es un Listener?
Ejecutar un Event
Events en segundo plano
Manejo de Listeners fallidos
Especificar reintentos a un Listener
Poner tiempo de espera en Listener
Ciclo de ejecución de reintentos y failed en Listeners
Service Provider
¿Qué es un Service Provider?
Creación de Service Provider
Creación de clase e inyectada en Service Provider Personalizado
Configuración de valores
Probar lo configurado con Service Provider personalizado
Uso del método boot() para registrar rutas
Registro de Events y Listeners por medio de Service Provider
Ejecución de Event desde clase servicio
Commands
¿Qué es un Command?
Creación de Command
Commands con argumentos obligatorios
Commands con argumentos opcionales
Commands con flags
Agregar descripciones de los argumentos
Command que consultan la Base de Datos
Manejo de Errores en Commands
Commands que trabajan con objetos inyectados
Commands para mantenimiento
Task Scheduling
Pruebas
Instalación de Pest
Diferencia entre Unit Test y Feature Test
Crear Test Unit
Crear Feature Test
Pruebas para casos de Errores o Excepciones
Hacer Feature Test a Controller
Configuración de Entorno de Pruebas
Creación de Base de Datos para pruebas
Tests que usan Base de Datos
Constantes para uso de Respuestas HTTP
Test con Validaciones sobre la estructura del JSON de Respuesta
Test para probar creación de elementos en Base de Datos
Test para probar Validaciones
Test para probar actualización de elemento en la Base de Datos
Test para probar dependencias en de elementos con otras Tablas
Test para comprobar eliminaciones de elementos de Base de Datos
Test para validar eliminaciones de elementos que no existen
Test a Controllers que tienen Middleware JWT
Eliminar middleware de JWT en la ejecución de un Conjunto de Tests
Proyecto final - Módulo Venta
Creación de Migración de Tabla Concept
Creación de Migración de Tabla Sale
Creación de Migración de la relación Sale-Concept
Creación de Models Concept y Sale y sus relaciones
Creación de Controller SaleController y configuración de ruta
Creación de Request SaleRequest para validar (Incluye validaciones de array)
Creación de ConceptEntity para resolver las reglas de negocio de Concept
Creación de SaleEntity para resolver las reglas de negocio de Sale
Guardado de Venta en Base de Datos
Creación de servicio SaleService para código más limpio
Unit Test para ConceptEntity
Unit Test para SaleEntity
Feature Test para CreateSaleService
Conclusión y código fuente
Conclusión y código fuente
Planes de Metal Code
Mensual
$10 USD
Es la membresía más económica y que las personas eligen más
- ✔ Acceso a Todos los cursos
- ✔ Acceso al código del curso (si es que aplica)
- ✔ Acceso a cursos en Pre-venta
- ✔ Acceso a cursos exclusivos
- ✔ Certificado de finalización
Trimestral
$25 USD
Si deseas terminar más de 3 cursos, esta es la membresía ideal
- ✔ Acceso a Todos los cursos
- ✔ Acceso al código del curso (si es que aplica)
- ✔ Acceso a cursos en Pre-venta
- ✔ Acceso a cursos exclusivos
- ✔ Certificado de finalización
Semestral
$40 USD
Membresía para las personas que deseen ver más de 5 o 6 cursos
- ✔ Acceso a Todos los cursos
- ✔ Acceso al código del curso (si es que aplica)
- ✔ Acceso a cursos en Pre-venta
- ✔ Acceso a cursos exclusivos
- ✔ Certificado de finalización
Anual
$60 USD
Si deseas ver todos los cursos de Metal Code, esta membresía es la ideal
- ✔ Acceso a Todos los cursos
- ✔ Acceso al código del curso (si es que aplica)
- ✔ Acceso a cursos en Pre-venta
- ✔ Acceso a cursos exclusivos
- ✔ Certificado de finalización