Laravel ミドルウェアの動作原理と使用スキル
1. はじめに
Laravel フレームワークでは、ミドルウェアは、リクエストがアプリケーション ルートに到達する前、またはその後何らかの処理を実行する前に使用できる非常に重要な機能です。機能。ミドルウェアは、リクエストを簡潔かつ柔軟に処理する方法を提供するだけでなく、認証、権限制御、ロギングなどの一連の操作を処理するためにも使用できます。この記事では、Laravel ミドルウェアの動作原理と使用スキルを紹介し、説明するサンプル コードをいくつか示します。
2. ミドルウェアの仕組み
Laravel フレームワークでは、ミドルウェアは app/Http/Middleware
ディレクトリに定義されており、コマンド ラインまたは手動で新しいミドルウェアを作成できます。ファイル。ミドルウェアの中心的な概念はクロージャ関数です。この関数は、リクエスト オブジェクトとクロージャ関数の 2 つのパラメータを受け取り、応答オブジェクトを返します。
アプリケーションが HTTP リクエストを受信すると、リクエストはアプリケーションのミドルウェア層を通過します。ミドルウェア層では、リクエストは定義された順序でミドルウェアを通じて 1 つずつ処理されます。ミドルウェアは、リクエストの前処理、認証、リクエスト パラメータの変更、ログの記録などを行った後、リクエストを次のミドルウェアまたはルートに渡して処理することができます。
ミドルウェアがリクエストを処理する場合、レスポンス オブジェクトを返し、そのレスポンスをクライアントに直接送信することを選択して、リクエストとレスポンスのプロセス全体を終了することができます。それ以外の場合、リクエストを処理するミドルウェアが見つかるか、最終的にルートに到達するまで、リクエストは下に渡され続けます。
3. ミドルウェア利用のヒント
app/Http/Kernel.php
ファイルの $middleware
プロパティを編集するか、$routeMiddleware
を通じてグローバル ミドルウェアを登録できます。ルーティングミドルウェアを登録します。たとえば、CheckToken
という名前のミドルウェアをグローバル ミドルウェアとして登録できます。 protected $middleware = [ AppHttpMiddlewareCheckToken::class, ];
$routeMiddleware
属性にキーと値のペアを追加します。たとえば、CheckRole
という名前のルート ミドルウェアを定義できます: protected $routeMiddleware = [ 'checkRole' => AppHttpMiddlewareCheckRole::class, ];
次に、ルート定義でミドルウェアを使用します:
Route::get('/admin', function () { // })->middleware('checkRole');
$middleware
属性またはルート定義では、優先度の高いミドルウェアが最初に実行されます。 php 職人ルート:リスト
コマンドを使用して、ミドルウェアの実行順序を表示できます。 admin
ミドルウェア グループを定義するには、次のように実行できます。 Route::group(['middleware' => 'admin'], function () { // });
この方法では、このグループで定義されているすべてのルートが に適用されます。管理者
ミドルウェア。
4. サンプルコード
ミドルウェアをさらに理解して使用するために、以下に簡単なサンプルコードを示します。認証を必要とする API インターフェイスがあるとします。ミドルウェアを使用して認証を処理し、認証が通らない場合はエラー応答を返すことができます。
php artisan make:middleware Authenticate
app/Http/Middleware/Authenticate.php
ファイルに、次のコードを記述します。 : <?php namespace AppHttpMiddleware; use Closure; use IlluminateHttpRequest; class Authenticate { public function handle(Request $request, Closure $next) { $token = $request->header('Authorization'); if ($token != 'secret_token') { return response()->json(['error' => 'Unauthorized'], 401); } return $next($request); } }
app/Http/Kernel.php
ファイルの $middleware
属性にミドルウェアをグローバル ミドルウェアとして登録します。以下を追加します。コード: protected $middleware = [ AppHttpMiddlewareAuthenticate::class, ];
Route::get('/api', function () { // })->middleware('auth');
上記のコードは、リクエスト ヘッダーの Authorization## をチェックします。フィールドを指定し、
secret_token と比較します。検証に合格した場合は、次のミドルウェアまたはルートに進みます。それ以外の場合は、ステータス コード 401 のエラー応答を JSON 形式で返します。
以上がLaravelミドルウェアの仕組みと使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。