Definir middlewares de Laravel dentro de un paquete de composer.

Angel Cruz
Angel Cruz
Tabla de contenidos

Últimamente he estado trabajando en crear paquetes para composer para ser usados con Laravel y me encontré con la necesidad de agregar varios middlewares a otros grupos de middlewares. Redundante lo sé pero espero que con el ejemplo que te voy a dar puedas entender mejor 🤣

Ok, entonces qué es un grupo de middleware? La respuesta es sencilla, si vas al archivo app/Http/Kernel.php ahí vas a poder encontrar un arreglo llamado $middlewareGroups que incluye las claves "web" y "api".

Entendiendo ya los grupos de middleware ahora pasaré a explicar como agregar un middleware desde el service provider de un paquete.

Es tan sencillo como hacer lo siguiente:

1<?php
2 
3namespace MyPackage\Namespace;
4 
5use MyPackage\Http\Middleware\CustomMiddleware;
6use Illuminate\Support\ServiceProvider;
7 
8class MyServiceProvider extends ServiceProvider
9{
10 public function register()
11 {
12 /** @var Router $router */
13 $router = $this->app['router'];
14 $router->pushMiddlewareToGroup('web', CustomMiddleware::class);
15 }
16}

También si quisieran agregar un alias para un middleware lo pueden hacer de esta forma:

1<?php
2 
3namespace MyPackage\Namespace;
4 
5use MyPackage\Http\Middleware\CustomMiddleware;
6use Illuminate\Support\ServiceProvider;
7 
8class MyServiceProvider extends ServiceProvider
9{
10 public function register()
11 {
12 /** @var Router $router */
13 $router = $this->app['router'];
14 $router->aliasMiddleware(
15 'custom.middleware',
16 CustomMiddleware::class
17 );
18 }
19}

Y ya a partir de aquí queda de ustedes usarlo en las rutas o en el constructor de sus controladores. 😉

Te podrá interesar
Cursor anunció un ajuste en sus precios a partir del 15 de septiembre de 2025. Descubre cómo afectará a los usuarios, por qué ocurre este cambio y qué alternativas existen.
GitHub no cierra, pero ya no será lo mismo. Con la salida de Thomas Dohmke como CEO y la decisión de Microsoft de no reemplazarlo, la plataforma dejará de operar como entidad independiente y pasará a formar parte del equipo CoreAI, liderado por Jay Parikh.
Aprende cómo crear reglas personalizadas en Cursor IDE paso a paso. Incluye ejemplos, mejores prácticas y un generador de reglas online para facilitar el proceso.
Logo de Angel Cruz

Made with ♥️ & 🧉 in Montevideo, Uruguay Buenos Aires, Argentina.

[AC].dev is not affiliated with Laravel or Laravel LLC. Laravel is a Trademark of Taylor Otwell.

Code highlighting provided by Torchlight.