laravel で一般的に使用されるミドルウェアは次のとおりです: 1. 「$middleware」グローバル ミドルウェア。すべてのリクエストを処理する必要がある場合、このコンポーネントで定義するのが適切です。2. 「$routeMiddleware」ルーティング ミドルウェア。3. . "$middlewareGroups" ミドルウェア グループ。
このチュートリアルの動作環境: Windows 7 システム、Laravel 6 バージョン、Dell G3 コンピューター。
laravel で一般的に使用される 3 つのミドルウェア
$middleware 属性:
この属性は次のように呼ばれます。グローバルミドルウェアですが、なぜグローバルミドルウェアと呼ばれるのでしょうか?リクエストするたびに、その中のすべてのミドルウェアが実行されるためです。
$routeMiddleware 属性:
この属性はルーティング ミドルウェアと呼ばれます。なぜルーティング ミドルウェアと呼ばれるのでしょうか?この属性で定義されたミドルウェアはルート定義時にのみ参照できるためです。
これが私たちが定義したルーティング ミドルウェアであると仮定します:
protected $routeMiddleware = [ ... 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, ];
\Illuminate\Auth\Middleware\Authenticate::class ミドルウェアを使用したい場合はどうすればよいでしょうか?
Route::get('hello/laravel-china','XXController@index')->middleware('auth');
ルートを定義するときにミドルウェア メソッドを呼び出しました。パラメータ値は次のとおりです。 auth、このようにこのルートにアクセスするとミドルウェアが実行されます。理解する!とてもシンプルです。
$middlewareGroups 属性:
この属性はミドルウェア グループと呼ばれます。なぜミドルウェア グループと呼ばれるのでしょうか?以前、ルーティングミドルウェアの話をしましたが、このようにルーティングミドルウェアを追加するのは面倒だと思いませんか? 例えば、10個のミドルウェアを実行した場合、ルートを定義するときにさらに10個追加する必要がありますか?ミドルウェア群があればそこまで面倒なことは必要ありません。ミドルウェアグループがどのように定義されているかを見てみましょう。
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, ... ], 'api' => [ ... ], ];
わかりました。上記の例はミドルウェア グループの形式を定義するものです。たとえば、キー値 web を見ると、複数のミドルウェアで構成される配列に対応します。定義したら、それをどのように使用すればよいでしょうか?
ルートを宣言するときは、次のように呼び出すことができます。
Route::group(['middleware' => 'web'],function($route){ $route->get('hello/world',function(){}); $route->get('hello/php',function(){}); // 这样在访问这个这些路由的时候,就会执行中间件组 web 所对应的中间件,方便多了,批量式的。 });
概要:
$middleware: グローバル ミドルウェア。すべてのリクエストに対して何らかの処理を行う必要がある場合、この属性で定義するのが適しています。 (例: リクエスト数をカウントする)
$middlewareGroups: ミドルウェア グループ たとえば、プロジェクトに API リクエストと Web リクエストがある場合、2 種類のリクエスト ミドルウェアを分離する必要があります。コンポーネントが組み立てられます。
$routeMiddleware: ルーティング ミドルウェア 一部の個別のリクエストについて、特別なミドルウェアを実行する必要がある場合は、この属性で定義するのが適切です。
引用: https://laravel-china.org/topics/7392/laravel-three-middleware-functions
関連する推奨事項:最新の 5 つの Laravel ビデオ チュートリアル
以上がlaravelでよく使われるミドルウェアは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。