ホームページ >バックエンド開発 >PHPチュートリアル >Laravelのパラメーター化されたミドルウェア
Laravelのミドルウェアシステムは、パラメーター化を通じて大きな柔軟性を獲得し、ランタイムデータに基づいて動的な動作を可能にします。これは、ロールベースのアクセス制御、レートの制限、または構成可能なミドルウェアロジックを要求する状況などのシナリオにとって特に価値があります。
パラメーター化されたミドルウェアを使用したロールベースのルート保護を示す例を次に示します。このミドルウェアは、認証されたユーザーが指定された役割のいずれかを所有しているかどうかをチェックします。 ルート定義でどのように使用されているかを見てみましょう:
namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class EnsureUserHasRole { public function handle(Request $request, Closure $next, string ...$roles) { if (!$request->user()?->hasAnyRole($roles)) { return response()->json(['error' => 'Insufficient permissions'], 403); } return $next($request); } }
ミドルウェアに渡された
use App\Http\Controllers\PostController; use App\Http\Middleware\EnsureUserHasRole; Route::prefix('posts')->group(function () { // Public routes Route::get('/', [PostController::class, 'index']); // Editor routes Route::put('/{id}', [PostController::class, 'update']) ->middleware(EnsureUserHasRole::class . ':editor'); Route::post('/', [PostController::class, 'store']) ->middleware(EnsureUserHasRole::class . ':editor'); // Admin routes Route::delete('/{id}', [PostController::class, 'destroy']) ->middleware(EnsureUserHasRole::class . ':admin'); });および
パラメーターは、必要な役割を動的に決定します。 このアプローチは、洗練された許可を実装しながら、クリーンなルートとコントローラーを維持します。 パラメーター化されたミドルウェアの力は、ミドルウェアのロジックにコンテキスト固有のデータを注入する能力にあり、より適応性のある保守可能なコードをもたらします。
以上がLaravelのパラメーター化されたミドルウェアの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。