😄
Laravelのミドルウェアのメモ
Laravelのミドルウェアのメモ
概要
LaravelのミドルウェアはHTTPレスポンスの変更やリクエストに他する処理を行う
公式ドキュメントより
ミドルウェアは、アプリケーションに入るHTTPリクエストを検査およびフィルタリングするための便利なメカニズムを提供します。たとえば、Laravelには、アプリケーションのユーザーが認証されていることを確認するミドルウェアが含まれています。ユーザーが認証されていない場合、ミドルウェアはユーザーをアプリケーションのログイン画面にリダイレクトします。逆に、ユーザーが認証されている場合、ミドルウェアはリクエストをアプリケーションへ進めることを許可します。
ミドルウェアを追加して、認証以外にもさまざまなタスクを実行できます。たとえば、ログミドルウェアなら、アプリケーションが受信したすべてのリクエストをログへ記録できるでしょう。Laravelフレームワークには、認証やCSRF保護用のミドルウェアなど、ミドルウェアがいくつか含まれています。これらのミドルウェアはすべて、app/Http/Middlewareディレクトリにあります。
作成
コマンド1つで作れるので楽ですね
php artisan make:middleware ミドルウェア名
作成されたミドルウェアのファイルの中身はこのようになっています
<?php
namespace App\Http\Middleware;
use Closure;
class Middleware {
public function handle($request, Closure $next)
{
return $next($request);
}
}
リクエストの前後で処理を行いたい場合、以下のようにするとできるらしい
<?php
namespace App\Http\Middleware;
use Closure;
class Middleware {
public function handle($request, Closure $next)
{
// リクエスㇳの前に処理を行う
$response = $next($request);
// リクエスト後に処理を行う
return $response;
}
}
ミドルウェアの登録
登録はApp\Http\Kernel.php
の配列内に記述する
私の場合は$routeMiddlewareに登録した
各middleware配列の違いがまだ理解できていないので後日調べる
protected $routeMiddleware = [
'middleware' => \App\Http\Middleware\Middleware::class,
];
web.phpで使用する
$routeMiddleware
で登録したミドルウェア名を渡すと使用できる
Route::middleware('middleware')->group(function() {
// ルートの登録
});
Route::get('/')->middleware('middleware');
参考
最後に
間違っていることがあれば、コメントに書いていただけると幸いです。
よろしくお願いいたします。
Discussion