[はじめに]
ThinkPHP6 はよく知られた PHP オープン ソース フレームワークで、前バージョンの優れた機能をエレガントに継承し、PHP7 の新機能を統合して、より高速かつ安全になっています。 ThinkPHP6 では、ミドルウェアは非常に重要な部分であり、開発者がリクエストの前、最中、後に処理して、より柔軟でスケーラブルなアプリケーションを実現できるようにします。
[本文]
1. ミドルウェアとは何ですか?
ミドルウェアとは、リクエストがアプリケーションに到達する前後に実行できるコードを指します。ミドルウェアの存在により、アプリケーションの拡張と管理が容易になります。
ThinkPHP6 では、ミドルウェアは次の機能を実装できます:
- トークンの検証、不正なリクエストのインターセプトなどのルート前処理。コントローラー メソッドの後処理 (PV、UV のカウント、リクエスト パラメーターの処理など)
- コントローラー メソッドの後処理 (応答データのキャッシュ、ログの記録など)
- 後処理のルーティング (応答、質問など)
- #2. ミドルウェアの使用
ThinkPHP6 のミドルウェアの使用は非常に簡単で、ミドルウェアを設定するだけです。設定ファイルを保存し、指定された順序で実行できます。
2.1 ミドルウェアの登録
config/middleware.php ファイルには、次のデフォルトのミドルウェア リストが表示されます。
<?php
return [
// 别名或分组
'alias' => [],
// 优先级设置,此数组中的中间件会按照优先级进行先后排序
'priority' => [],
// 中间件列表
'middleware' => [
hinkmiddlewareSessionInit::class,
hinkmiddlewareAllowCrossDomain::class,
],
];
ログイン後にコピー
その中で、最初のミドルウェアは SessionInit ミドルウェアです。 、目的はセッションを初期化することです。2 番目のミドルウェアはAllowCrossDomain ミドルウェアで、目的はクロスドメイン要求を許可することです。独自のミドルウェアを構成する必要がある場合は、独自のミドルウェア クラスを定義し、それを上記の構成に追加できます。
2.2 ミドルウェアのソート
ThinkPHP6 のミドルウェアは優先度に応じてソートすることができ、優先度の値が小さいほど実行順序が高くなります。ミドルウェアの構成ファイルでは、以下に示すように、指定したグループまたはエイリアスのミドルウェアの優先順位を設定できます。
<?php
return [
// 别名或分组
'alias' => [
'home' => ppmiddlewareCheck::class,
],
// 优先级设置,此数组中的中间件会按照优先级进行先后排序
'priority' => [
ppmiddlewareDemo::class => 1,
ppmiddlewareTest::class => 2,
],
// 中间件列表
'middleware' => [
hinkmiddlewareSessionInit::class,
hinkmiddlewareAllowCrossDomain::class,
],
];
ログイン後にコピー
上記の構成では、デモ ミドルウェアを優先順位 1 に設定し、テスト ミドルウェアを優先順位 1 に設定します。ミドルウェア ファイルは優先度 2 に設定されます。
2.3 ミドルウェアの使用
ThinkPHP6 では、グローバル ルーティングまたはグループ ルーティング、または指定されたコントローラーまたはコントローラー メソッドにミドルウェアを使用できます。
(1) グローバル ルーティングはミドルウェアを使用します
アプリケーション ディレクトリのroute/route.php ファイルで、以下に示すようにグローバル ルーティングを登録できます。上記のコードでは、Check という名前のミドルウェアが middleware('Check') によって追加されています。これは、index/hello メソッドが実行される前に Check ミドルウェアが実行されることを意味します。
(2) ミドルウェアを使用したグループルーティング
アプリケーションディレクトリのroute/group.phpファイルで、次のようにグループルーティングを登録できます。上のコードでは、api という名前のグループ ルートが定義されています。この中で、/user/:id ルートは Check という名前のミドルウェアを使用します。
(3) コントローラー レベルでのミドルウェアの使用
コントローラー ファイルでは、以下に示すように、特別に名前を付けたメソッドを通じてメソッド レベルのミドルウェアを定義できます。上記のコードでは、読み取りメソッドと書き込みメソッドはメソッド レベルのミドルウェアを使用し、Check ミドルウェアはコントローラー レベルのミドルウェアです。
[概要]
ミドルウェアは、非常に柔軟なリクエスト処理方法を提供する強力なツールで、リクエストの前、最中、後にデータを処理できます。 ThinkPHP6 では、ミドルウェアの使用が非常に簡単で、一定のルールに従ってミドルウェアのクラスを作成し、設定するだけで済み、柔軟性と拡張性に優れています。
以上がミドルウェアを使用して ThinkPHP6 でリクエストを処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。