Создание посредника в Laravel
Свой посредник создают командой Artisan.
Laravel положит класс в папку
app/Http/Middleware/:
php artisan make:middleware VisitCounter
В классе главный метод - handle.
Он получает входящий запрос и колбэк
$next. Если всё в порядке,
возвращают $next($request) -
так запрос идёт дальше (к следующему
посреднику или к контроллеру).
Если проверку не прошли - делают
редирект или ошибку и $next
не вызывают.
Пример: считаем посещения страницы в сессии. Сначала читаем счётчик, увеличиваем, сохраняем - и только потом пропускаем запрос дальше:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class VisitCounter
{
public function handle(Request $request, Closure $next)
{
$count = $request->session()->get('visits', 0);
$request->session()->put('visits', $count + 1);
return $next($request);
}
}
?>
Пока посредник только написан. Чтобы он заработал, его нужно зарегистрировать и повесить на маршруты - это следующие уроки.
Создайте посредник
VisitCounter командой
Artisan.
В handle сохраняйте
в сессии число посещений
и вызывайте $next($request).