Gestión de la prioridad de los middlewares en Laravel: un nuevo enfoque dinámico
- Publicado el 29 noviembre, 2024
- Palabras: 65
¿Necesitas gestionar el orden de ejecución de tu middleware de forma programática? ¡El kernel HTTP de Laravel ahora ofrece nuevos métodos para gestionar la prioridad del middleware con precisión! Exploremos estas potentes incorporaciones.

#Los nuevos métodos de prioridad
Laravel presenta dos métodos para gestionar la prioridad del middleware:
// Añade un middleware después de un middleware específico
$kernel->addToMiddlewarePriorityAfter(
IlluminateRoutingMiddlewareValidateSignature::class,
[
IlluminateCookieMiddlewareEncryptCookies::class,
IlluminateContractsAuthMiddlewareAuthenticatesRequests::class,
]
);
// Añade un middleware antes de un middleware específico
$kernel->addToMiddlewarePriorityBefore(
IlluminateRoutingMiddlewareValidateSignature::class,
[
IlluminateCookieMiddlewareEncryptCookies::class,
IlluminateContractsAuthMiddlewareAuthenticatesRequests::class,
]
);
#Ejemplo práctico
A continuación se muestra cómo podría utilizar esto en un service provider:
class PackageServiceProvider extends ServiceProvider
{
public function boot()
{
$kernel = $this->app->make(IlluminateContractsHttpKernel::class);
// Añade nuestro middleware de registro personalizado después de la autenticación
$kernel->addToMiddlewarePriorityAfter(
IlluminateAuthMiddlewareAuthenticate::class,
[
AppHttpMiddlewareLogUserActions::class,
AppHttpMiddlewareTrackUserSession::class,
]
);
// Añade nuestros controles de seguridad antes de cualquier manipulación de ruta
$kernel->addToMiddlewarePriorityBefore(
IlluminateRoutingMiddlewareSubstituteBindings::class,
[
AppHttpMiddlewareValidateSecurityHeaders::class,
AppHttpMiddlewareCheckMaintenanceBypass::class,
]
);
}
}
Este nuevo enfoque facilita a los desarrolladores de paquetes la integración de su middleware sin necesidad de intervención manual de los usuarios. Se trata de hacer que la gestión del middleware sea más flexible y fácil de mantener.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión