ミドルウェアって何?「交通整理係」の仕事
ミドルウェアとは、リクエスト(ユーザーからの要求)がControllerに届く前に実行される「中間処理」のことです。 例えば、認証や権限チェック、データ整形などを共通して行うのに使います。
具体的な役割
- 認証: ユーザーがログインしているかを確認する
 - 権限チェック: 管理者のみがアクセスできるページを制御する
 - リクエスト整形: データのサニタイズなどを一括で行う
 
処理の流れ
        リクエスト → ミドルウェア → Controller → ミドルウェア(レスポンス処理) → ユーザー
      
      
        このように、ミドルウェアはまるで高速道路の料金所や交通整理係のように、
        「誰が通れるか」「どんな状態で通るべきか」を管理する役割を担っています。
      
簡単!Laravelでミドルウェアを使ってみよう
Laravelではコマンド一発でミドルウェアを作成できます。
php artisan make:middleware CheckUserAuthenticated
      
        生成されたクラスには handle メソッドがあります。ここでリクエストをチェックし、
        問題なければ return $next($request); を実行することで次の処理(別のミドルウェアやController)へ進めます。
      
コード例: ログインしていないユーザーをリダイレクト
public function handle($request, Closure $next)
{
    if (!auth()->check()) {
        return redirect('/login');
    }
    return $next($request);
}
      
      
        このコードによって、未ログインのユーザーはログインページへ誘導されます。
        逆にログイン済みであれば $next($request) によって処理が進行します。
      
ミドルウェアの登録と適用
- Kernel.phpに登録: 
app/Http/Kernel.phpに書き込む - ルートで適用: 
web.phpでグループに適用可能 - Controllerで適用: コンストラクター内で 
$this->middleware('auth'); 
こんなに便利!実用的なミドルウェアの活用例
1. ユーザー権限チェック
public function handle($request, Closure $next)
{
    if (!auth()->user() || !auth()->user()->isAdmin()) {
        abort(403, 'このページにアクセスできません');
    }
    return $next($request);
}
      
      2. メンテナンスモード
public function handle($request, Closure $next)
{
    if (config('app.maintenance')) {
        return response('現在メンテナンス中です', 503);
    }
    return $next($request);
}
      
      3. IPアドレス制限
public function handle($request, Closure $next)
{
    $allowedIps = ['123.45.67.89'];
    if (!in_array($request->ip(), $allowedIps)) {
        abort(403, 'アクセスが許可されていません');
    }
    return $next($request);
}
      
    まとめ:ミドルウェアがあなたのコードを救う
          ミドルウェアは全リクエストに共通する横断的処理を担い、コードの重複を防ぎます。
          一方でService層は特定のビジネスロジックをまとめる場所です。
          これを理解することで、よりシンプルでメンテナンス性の高いコードが書けるようになります。
          「交通整理係」としてのミドルウェアをうまく活用し、開発を効率化しましょう!