Вместо регистрации middleware в файле kernel, имеется возможность подключения по классу.
Использование класса со статическим методом может сделать его более читаемым. Возьмем, к примеру, создание статических методов для настройки параметров маршрутизатора. Посмотрите в примере ниже, как мы использовали имя класса, но также у нас есть статический метод overAgeOf, который дает понять, что параметр будет делать по отношению к промежуточному программному обеспечению.
use App\Http\Middleware; use App\Http\Controllers; // using the class name directly Route::get('/eu/user', Controllers\UserController::class) ->middleware( 'auth:api', Middleware\IsAdult::class ); // using a static method to apply parameters Route::get('/us/user', Controllers\UserController::class) ->middleware( 'auth:api', Middleware\IsAdult::overAgeOf(21) );
Нам нужно только реализовать статический метод в нашем промежуточном программном обеспечении, чтобы вернуть имя класса с двоеточием, а затем наши параметры, разделенные запятыми. Во всём остальном, вы можете видеть, что в нашем промежуточном программном обеспечении нет ничего особенного.
namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class IsAdult { public static function overAgeOf(int $age) { return self::class . ':' . $age; } public function handle(Request $request, Closure $next, int $age = 18) { if ($request->user()->age < $age) { abort(403); } return $next($request); } }