57 lines
2.1 KiB
PHP
57 lines
2.1 KiB
PHP
<?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;
|
|
}
|
|
}
|