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. 😉