ルートグループとミドルウェアの使用

Laravel講座

Laravelでは、ルートグル ープとミドルウェアを組み合わせることで、ルートのグループ化やアクセス制御などを効率的に行うことができます。さっそくルートグループとミドルウェアの基本的な使用方法について見ていきましょう。

ルートグループの作成

ルートグループは、関連するルートをまとめて扱うための便利な機能です。ルートグループを使用することで、共通のプレフィックスやミドルウェアを複数のルートに一括で適用することができます。以下は、ルートグループを作成する例です。

routes/web.php
Route::prefix('admin')->middleware('auth')->group(function () {
    Route::get('dashboard', 'AdminController@dashboard');
    Route::get('users', 'AdminController@users');
    // 他のルート定義
});
PHP

この例では、adminプレフィックスのルートグループを作成しています。middleware('auth')メソッドを使用することで、authミドルウェアを適用しています。dashboardusersといった関連するルートを一括で定義することができます。

ミドルウェアの使用

ミドルウェアは、リクエストとレスポンスの間で処理を実行するフィルターです。Laravelでは、様々なミドルウェアが用意されており、認証、CSRF保護、キャッシュ制御などの機能を実現することができます。以下は、ミドルウェアを使用する例です。

routes/web.php
Route::get('profile', function () {
    // プロフィールページの処理
})->middleware('auth');
PHP

この例では、profileルートにauthミドルウェアを適用しています。ミドルウェアはルート定義内でmiddlewareメソッドを使用して指定します。この場合、認証が必要なプロフィールページにアクセスする際にミドルウェアが実行されます。

グローバルミドルウェアの設定

Laravelでは、グローバルミドルウェアを設定することもできます。これは、アプリケーション全体のリクエストに対して適用されるミドルウェアです。app/Http/Kernel.phpファイルでミドルウェアを指定することができます。

app/Http/Kernel.php
protected $middleware = [
    // 他のミドルウェア
    \App\Http\Middleware\CustomMiddleware::class,
];
PHP

この例では、CustomMiddlewareをグローバルミドルウェアとして指定しています。これにより、アプリケーション内のすべてのリクエストに対してCustomMiddlewareが実行されます。

まとめ

ルートグループとミドルウェアは、Laravelの開発において非常に便利な機能です。ルートグループを使用することで、関連するルートを効率的にまとめることができます。ミドルウェアを適用することで、リクエストの処理フローを制御したり、セキュリティを強化したりすることができます。

著者

Webエンジニア歴30年、フリーランスバックエンドエンジニア。

PHP歴約30年(Laravel 7年・FuelPHP 5年・CakePHP・自作FW)、
JavaScript歴約20年(React・Vue各4年)。
AWS(EC2 / CloudFront / RDS / API Gateway など)・
GCP(BigQuery)を使ったバックエンド開発を中心に、
複数の事業会社・受託案件でシステム設計から実装・運用まで担当しています。

PHPがバージョン4の時代から書いており、
Laravelが普及する前のフレームワーク乱立期も経験しています。
「昔はこう書いていたが今はこう」という変遷を肌で知っているエンジニアとして、
単なるコマンドの使い方だけでなく、なぜそうするのかの背景まで伝えることを意識して書いています。

このブログでは、実務で実際に詰まった箇所・調べたこと・気づいたことを
そのまま記事にしています。誰かの「詰まり」が解決するきっかけになれば幸いです。

千原 耕司をフォローする

役にたったと思ったら応援をお願いします m(._.)m

Laravel講座ルーティングとコントローラー
スポンサーリンク
シェアする
千原 耕司をフォローする
タイトルとURLをコピーしました