---
title: "Definir middlewares de Laravel dentro de un paquete de composer."
excerpt: "Ú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 🤣"
date: "2022-12-10T19:03:18.000Z"
category: "Laravel"
seo_title: "Registrar middlewares de Laravel en un paquete de Composer"
seo_description: "Cómo agregar middlewares a grupos 'web' o 'api' de Laravel desde el ServiceProvider de un paquete Composer usando pushMiddlewareToGroup y aliasMiddleware."
author:
  name: "angel cruz"
  picture: "https://angelcruzdevcdn.nyc3.cdn.digitaloceanspaces.com/images/me/angel-cruz.png"
ogImage:
  url: "/images/open-graph/laravel-opengraph-image.png"
---

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
<?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
<?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. 😉

---

## Sitemap

Índice completo del sitio: [/sitemap.md](https://angelcruz.dev/sitemap.md)

Canónico HTML: [https://angelcruz.dev/post/definir-middlewares-de-laravel-dentro-de-un-paquete-de-composer](https://angelcruz.dev/post/definir-middlewares-de-laravel-dentro-de-un-paquete-de-composer)
