El concepto de middlewares es popular en muchos frameworks de Desarrollo Web. Laravel no es la excepción, de hecho, es uno de los frameworks donde se promueve el uso de este concepto para múltiples propósitos.
Un Middleware tiene como propósito tomar dos piezas de la aplicación y conectarlas, como un puente en el que fluye la información. Normalmente decimos que una rutina de código tiene como propósito recibir información y retornarla transformada, la única característica especial de un Middleware es que la información la obtiene de otra función de código para luego enviársela a una función distinta más.
Los middlewares en Laravel son clases con una función handle que recibe un objeto instancia de la clase $request, además de un Closure $next
class EjemploMiddleware
{
public function handle($request, Closure $next)
{}
}
Desde aquí podemos notar algo del potencial de un middleware, dado que recibimos el objeto $request, es también posible aprovechar ese objeto para pasar información que sirva luego a los controladores, esto permite que podamos aislar en un solo archivo alguna consulta que aplique para múltiples funciones de nuestros controladores.
La función de un middleware culmina cuando se manda a llamar el argumento $next como una función, con el objeto $request enviándose como argumento:
class EjemploMiddleware
{
public function handle($request, Closure $next)
{
$next($request);
}
}
Esta llamada indica que la petición debe continuar su camino hacia un siguiente middleware o hacia el controlador que le dará respuesta final a la petición.
También es posible enviar una respuesta desde el middleware, por lo que comúnmente se usan para redireccionar al usuario en caso de que alguna condición se haya o no cumplido.
Observa por ejemplo este middleware que viene predefinido con el módulo de Autenticación de Laravel.
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
}
Verifica si existe una sesión válida y en caso de que exista, redirecciona al usuario hacia el home, caso contrario permite que el flujo de la petición continúe con el siguiente middleware o al controlador, en caso de que no haya ningún middleware.
-
Módulo 1 | 7 clases
Introducción
expand_more-
play_circle_outline
Clase 1
Introducción
-
play_circle_outline
Clase 2
Conocimientos Previos
-
play_circle_outline
Clase 3
Qué aprenderé en este curso
-
play_circle_outline
Clase 4
Laravel
-
play_circle_outline
Clase 5
Configurar HomeStead
-
play_circle_outline
Clase 6
Generar llaves pública y privada en Windows
-
play_circle_outline
Clase 7
Generar Proyecto
-
-
Módulo 2 | 20 clases
Autenticación y Productos
expand_more-
play_circle_outline
Clase 1
Configurar conexión a la base de datos
-
play_circle_outline
Clase 2
Qué son las migraciones
-
play_circle_outline
Clase 3
Uso de migraciones
-
play_circle_outline
Clase 4
Rutas
-
play_arrow
Clase 5
Middlewares en Laravel
-
play_circle_outline
Clase 6
Creando middlewares
-
play_circle_outline
Clase 7
Controladores REST
-
play_circle_outline
Clase 8
Rutas REST y Layouts
-
play_circle_outline
Clase 9
Formularios LaravelCollective
-
play_circle_outline
Clase 10
Webpack
-
play_circle_outline
Clase 11
Modelos y Tablas
-
play_circle_outline
Clase 12
Guardar en la base de datos
-
play_circle_outline
Clase 13
Formulario para actualización y creación
-
play_circle_outline
Clase 14
Actualización en la base de datos
-
play_circle_outline
Clase 15
Consulta para mostrar todos los productos
-
play_circle_outline
Clase 16
Paginación
-
play_circle_outline
Clase 17
Vista Individual de productos
-
play_circle_outline
Clase 18
Eliminar de la base de datos
-
play_circle_outline
Clase 19
Protección de rutas con autenticación
-
play_circle_outline
Clase 20
Validación de registros no autorizados
-
-
Módulo 3 | 11 clases
Vue
expand_more-
play_circle_outline
Clase 1
Qué es Vue
-
play_circle_outline
Clase 2
Mi primer componente de Vue
-
play_circle_outline
Clase 3
V-for para iterar colecciones
-
play_circle_outline
Clase 4
Props y v-bind
-
play_circle_outline
Clase 5
Enviar JSON desde el servidor
-
play_circle_outline
Clase 6
Laravel Resources para APIs y JSON
-
play_circle_outline
Clase 7
Qué es AJAX
-
play_circle_outline
Clase 8
Descargar datos con AJAX usando axios
-
play_circle_outline
Clase 9
Animar elementos de una lista v-for
-
play_circle_outline
Clase 10
Staggering animations (Animaciones con retraso)
-
play_circle_outline
Clase 11
Componentes funcionales
-
-
Módulo 4 | 13 clases
Carrito de Compras
expand_more-
play_circle_outline
Clase 1
Crear tabla del carrito
-
play_circle_outline
Clase 2
Manejar carrito con sesiones
-
play_circle_outline
Clase 3
Definir variables para todas las vistas
-
play_circle_outline
Clase 4
Relación muchos a muchos
-
play_circle_outline
Clase 5
Rutas REST con opciones
-
play_circle_outline
Clase 6
Pasar datos de un middleware al controlador
-
play_circle_outline
Clase 7
Agregar al carrito de compras
-
play_circle_outline
Clase 8
Contar productos en un carrito
-
play_circle_outline
Clase 9
Agregar al carrito con AJAX y Vue
-
play_circle_outline
Clase 10
Vuex
-
play_circle_outline
Clase 11
Mostrar carrito de compras
-
play_circle_outline
Clase 12
Productos del carrito con Vue
-
play_circle_outline
Clase 13
Calcular total del carrito
-
-
Módulo 5 | 6 clases
PayPal
expand_more-
play_circle_outline
Clase 1
Configuración del SDK de PayPal
-
play_circle_outline
Clase 2
Construir petición de cobro
-
play_circle_outline
Clase 3
Enviar solicitudes de cobro al API de PayPal
-
play_circle_outline
Clase 4
Autorización del cobro
-
play_circle_outline
Clase 5
Ejecutar el cobro
-
play_circle_outline
Clase 6
Guardar venta
-