ホームページ  >  記事  >  PHPフレームワーク  >  ミドルウェアを使用して ThinkPHP6 でリクエストを処理する

ミドルウェアを使用して ThinkPHP6 でリクエストを処理する

王林
王林オリジナル
2023-06-20 18:39:421492ブラウズ

[はじめに]

ThinkPHP6 はよく知られた PHP オープン ソース フレームワークで、前バージョンの優れた機能をエレガントに継承し、PHP7 の新機能を統合して、より高速かつ安全になっています。 ThinkPHP6 では、ミドルウェアは非常に重要な部分であり、開発者がリクエストの前、最中、後に処理して、より柔軟でスケーラブルなアプリケーションを実現できるようにします。

[本文]

1. ミドルウェアとは何ですか?

ミドルウェアとは、リクエストがアプリケーションに到達する前後に実行できるコードを指します。ミドルウェアの存在により、アプリケーションの拡張と管理が容易になります。

ThinkPHP6 では、ミドルウェアは次の機能を実装できます:

  1. トークンの検証、不正なリクエストのインターセプトなどのルート前処理。コントローラー メソッドの後処理 (PV、UV のカウント、リクエスト パラメーターの処理など)
  2. コントローラー メソッドの後処理 (応答データのキャッシュ、ログの記録など)
  3. 後処理のルーティング (応答、質問など)
  4. #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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。