Se agrego Middleware

This commit is contained in:
Marcos Elias Rios Nuñez 2025-10-08 11:32:29 -03:00
parent 64b99c9194
commit 601fc4f5cc

View File

@ -0,0 +1,56 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
use Symfony\Component\HttpFoundation\Response;
class EjemploMiddleware
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
// public function handle(Request $request, Closure $next): Response
// {
// // Lógica del middleware que se ejecuta ANTES de la petición.
// // Por ejemplo, verificar si el usuario está autenticado.
// if (!Auth::check()) {
// // Si la condición no se cumple, se bloquea la petición.
// // Se puede devolver una redirección o un error.
// return redirect('/login');
// }
// // Si la condición se cumple, se permite que la petición continúe.
// // Esto pasa la petición al siguiente middleware o al controlador.
// return $next($request);
// // Lógica del middleware que se ejecuta DESPUÉS de la petición.
// // Esta parte del código se ejecuta al "deshacer" la cadena de middleware,
// // una vez que la respuesta ha sido generada.
// // Por ejemplo, para modificar la respuesta o registrar datos.
// }
public function handle(Request $request, Closure $next)
{
// Código que se ejecuta ANTES de que la petición llegue al controlador.
$start_time = microtime(true);
// Se pasa la petición al siguiente middleware o al controlador y se captura la respuesta.
$response = $next($request);
// Código que se ejecuta DESPUÉS de que el controlador ha generado la respuesta.
$end_time = microtime(true);
$execution_time = ($end_time - $start_time) * 1000;
// Puedes usar logger() para registrar el tiempo.
Log::info("La petición a " . $request->path() . " tardó {$execution_time}ms");
// Se devuelve la respuesta al navegador.
return $response;
}
}