カテゴリ: Laravel 更新日: 2025/12/22

Laravelでミドルウェアを作成する方法を徹底解説!初心者でも理解できるmake:middleware入門

Laravelでミドルウェアを作成する方法(`make:middleware`)
Laravelでミドルウェアを作成する方法(`make:middleware`)

先生と生徒の会話形式で理解しよう

生徒

「Laravelでミドルウェアという言葉を聞いたんですけど、どうやって作るのかわかりません…。」

先生

「ミドルウェアはリクエストの通り道に置く仕組みなんだ。例えば、部屋に入る前に身だしなみをチェックするみたいな役目だよ。」

生徒

「なるほど…でも、ミドルウェアってどうやって作るんですか?」

先生

「Laravelには便利なコマンドがあって、簡単に作れるよ。それでは作り方を一緒に見ていこう。」

1. ミドルウェアを作成するための基本知識

1. ミドルウェアを作成するための基本知識
1. ミドルウェアを作成するための基本知識

Laravelでは、リクエストという情報がアプリに届く前に特定の処理を挟みたいときにミドルウェアを使います。ミドルウェアという名前は、英語で「middle(中間)」と「ware(機能)」が合わさった言葉で、流れてくる情報の途中に立つ仕組みです。例えば、特定のページを見る前にログインしているかを確認したり、サイトにアクセスするときの言語設定を自動で切り替えたりする場面で使われます。日常で例えると、学校の玄関で名札を確認する先生のような存在です。

Laravelでは、こうしたミドルウェアを自分で作成することができ、アプリの安全性や使いやすさを高めるために非常によく使われます。特に大きなアプリになるほどリクエストの制御は重要になるので、ミドルウェアの仕組みを理解しておくと開発がよりスムーズになります。

2. make:middlewareコマンドでミドルウェアを作成する

2. make:middlewareコマンドでミドルウェアを作成する
2. make:middlewareコマンドでミドルウェアを作成する

Laravelでミドルウェアを作成する最も基本的な方法が、make:middlewareというコマンドを使う方法です。このコマンドは、Laravelに備わっているアーティザンコマンドという便利なツールのひとつで、新しいファイルを自動生成してくれる仕組みです。手作業でファイルを作る必要がなく、開発を効率よく進められます。

以下のコマンドをターミナルに入力すると、新しいミドルウェアが作成されます。


php artisan make:middleware CheckSample

このように名前を指定すると、Laravelが自動でapp/Http/Middlewareというフォルダにミドルウェアのファイルを作ってくれます。ファイルの内部には、リクエストを処理するためのメソッドが用意されており、この中に自分の処理を書き足していく流れになります。プログラムの細かい構文を知らなくても、Laravelが用意した枠に処理を入れていくだけで動かせるため、初心者でも取り組みやすい仕組みです。

3. 作成されたミドルウェアの中身を理解しよう

3. 作成されたミドルウェアの中身を理解しよう
3. 作成されたミドルウェアの中身を理解しよう

作成されたミドルウェアのファイルを開くと、handleという名前のメソッドが用意されています。このメソッドには、リクエストを受け取って次の処理に渡す役割があり、必要に応じて条件を追加したり、処理を変更したりすることができます。ここに自分のチェック処理を書き足すことで、アクセスの前に実行したい内容を自由に設定できます。


public function handle($request, Closure $next)
{
    return $next($request);
}

この形はLaravelのミドルウェアで共通して使われる基本形です。特別な設定がなくても動作するため、最初は必要な処理を書き足して動作を確認する流れがおすすめです。ここに例えば時刻によってページのアクセスを制限したり、送られてきたリクエストの内容をログとして保存したりする処理を加えることができます。

4. ミドルウェアをルートに登録する方法

4. ミドルウェアをルートに登録する方法
4. ミドルウェアをルートに登録する方法

ミドルウェアを作っただけでは機能しないため、どのページで使うかをLaravelに登録する必要があります。そのための場所がKernelというファイルで、ミドルウェアを一覧として管理しています。ここに登録すると、ルートで指定できるようになり、必要なページやグループに適用できるようになります。


protected $routeMiddleware = [
    'checksample' => \App\Http\Middleware\CheckSample::class,
];

登録ができたら、ルーティングでミドルウェアを指定します。これにより、ページへアクセスするときに先ほど作った処理が必ず通過するようになります。


Route::get('/sample', function () {
    return 'サンプルページ';
})->middleware('checksample');

このように指定することで、アクセス前にチェック処理を実行できるため、アプリの安全性や利用制限を簡単に実装できます。コードのどこに書いてもよいわけではなく、ルートに明示的にミドルウェアを設定することで、制御が正しく働きます。

5. ミドルウェアを使って実現できること

5. ミドルウェアを使って実現できること
5. ミドルウェアを使って実現できること

ミドルウェアはさまざまな用途に使えるため、Laravelの中でも重要な機能とされています。例えば特定の時間帯だけページを表示したい場合や、特定の文字列が含まれているかをチェックしたり、アクセスログを残したりと応用範囲は広いです。こうした処理はコントローラに書くこともできますが、アクセス前に必ず実行されるミドルウェアのほうが適している場合が多くあります。

ミドルウェアを使い分けることで、アプリ全体の構造がすっきりまとまり、あとから修正しやすい形になります。同じ処理を何度も書かずに済むという点でも、ミドルウェアは非常に効率の良い仕組みです。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.8
Java&Spring記事人気No8
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド