Laravel

Definir middlewares de Laravel dentro de un paquete de composer.

Autorangel cruz
Publicado
Lectura1 min de lectura
Definir middlewares de Laravel dentro de un paquete de composer.

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:

<?php
 
namespace MyPackage\Namespace;
 
use MyPackage\Http\Middleware\CustomMiddleware;
use Illuminate\Support\ServiceProvider;
 
class MyServiceProvider extends ServiceProvider
{
    public function register()
    {
        /** @var Router $router */
        $router = $this->app['router'];
        $router->pushMiddlewareToGroup('web', CustomMiddleware::class);
    }
}

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

<?php
 
namespace MyPackage\Namespace;
 
use MyPackage\Http\Middleware\CustomMiddleware;
use Illuminate\Support\ServiceProvider;
 
class MyServiceProvider extends ServiceProvider
{
    public function register()
    {
        /** @var Router $router */
        $router = $this->app['router'];
        $router->aliasMiddleware(
            'custom.middleware', 
            CustomMiddleware::class
        );
    }
}
 

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

Bio
Angel Cruz

Desarrollador web full-stack enfocado en React, buenas prácticas y código abierto. Apasionado por construir productos útiles y compartir lo aprendido en el camino.