【Laravel】ミドルウェアの作成、登録方法
はじめに
MVCの説明では登場しなかった「ミドルウェア」について簡単に説明します。
ミドルウェア(middleware)とは
ミドルウェアとは、ユーザーがリクエストを送信してからコントローラーで処理を行う前もしくは後に、自動的に何らかの処理を行うプログラムのことです。
ミドルウェアを利用しない場合、
リクエスト → コントローラーのアクション → レスポンス
という流れになるですが、ミドルウェアを利用すると
リクエスト → ミドルウェア(前処理) → コントローラーのアクション → ミドルウェア(後処理) → レスポンス
という流れになります。
ミドルウェアの作成
コマンドプロンプトもしくはターミナルを起動し、以下のコマンドを実行します。
php artisan make:middleware ミドルウェア名
すると、app>Http>Middleware内にファイルが作成されます。
ファイルを開いてみると、
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class ミドルウェア名
{
※ コメント部分は省略
public function handle(Request $request, Closure $next)
{
return $next($request);
}
}
と記述されているはずです。
handleメソッドは、ミドルウェアをコントローラーの前に実行するか後に実行するかで実装の仕方が変わってきます。
ミドルウェアの3つの登録方法
1) 個々のルーティングに記述する方法
Route::HTTPメソッド('URI', 'コントローラー名@アクション名')->middleware(ミドルウェア名::class);
2) グローバルミドルウェアに登録する方法
まず、app>http内にあるKernel.phpを開きます。
protected $middleware = [
.
.
.
];
この中にグローバルミドルウェアに登録したいミドルウェアを記述します。
ここに記述した場合は、個々のルーティングでミドルウェアを呼び出す必要がないので、->middleware(ミドルウェア名::class)の部分は記述不要です。
3) グループ化して登録する方法
2)と同じく、Kernel.phpを開きます。
protected $middlewareGroups = [
.
.
.
];
既に記述されているwebやapiと同じように、グループを作って以下のように記述します。
'グループ名' => [
\App\Http\Middleware\ミドルウェア名::class,
.
.
.
],
ルーティングは以下のように記述します。
Route::HTTPメソッド('URI', 'コントローラー名@アクション名')->middleware('グループ名');
おわりに
何か誤りや気付き等ありましたら、ご指摘願います。
Author And Source
この問題について(【Laravel】ミドルウェアの作成、登録方法), 我々は、より多くの情報をここで見つけました https://qiita.com/yusuke___web/items/7609441eb4a75ccf0721著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .