Hyperf フレームワークを使用してリクエストをインターセプトする方法
Web アプリケーションの開発では、多くの場合、ユーザー リクエストをインターセプトして検証する必要があります。 Hyperf フレームワークは、Swoole をベースにした高性能 PHP フレームワークで、便利なリクエスト インターセプト機能を提供し、リクエストの処理と検証を容易にします。この記事では、Hyperf フレームワークを使用してリクエストをインターセプトする方法を紹介し、具体的なコード例を示します。
Hyperf フレームワークは HTTP ミドルウェア メカニズムを提供しており、カスタム ミドルウェアを作成することでリクエストをインターセプトできます。以下は、リクエスト インターセプト ミドルウェアの作成方法を示す簡単な例です。
<?php declare(strict_types=1); namespace AppMiddleware; use HyperfHttpServerContractRequestInterface; use HyperfHttpServerContractResponseInterface as HttpResponse; use HyperfUtilsContext; class AuthMiddleware { public function __construct(RequestInterface $request, HttpResponse $response) { $this->request = $request; $this->response = $response; } public function handle($request, Closure $next) { // 在这里可以对请求进行拦截和验证 if (! $this->checkToken($request)) { return $this->response->json([ 'code' => 401, 'message' => 'Unauthorized', ]); } // 继续处理下一个中间件 return $next($request); } private function checkToken($request) { // 在这里可以实现自己的验证逻辑 $token = $this->request->header('Authorization', ''); if ($token !== '123456') { return false; } // 将用户信息保存在上下文中 Context::set('user', [ 'id' => 1, 'name' => 'John Doe', ]); return true; } }
上記のコードでは、AuthMiddleware はカスタム ミドルウェア クラスです。 handle メソッドを実装することで、ここでリクエストをインターセプトして検証できます。検証が失敗した場合は、エラー応答を直接返すことができます。失敗した場合は、次のミドルウェアの処理を続行できます。この例では、リクエスト ヘッダーの Authorization フィールドをチェックすることで確認します。検証に合格した場合は、後続の処理で簡単に取得できるように、コンテキストにユーザー情報が保存されます。
このミドルウェアを使用するには、config/autoload/middlewares.php 設定ファイルに登録する必要があります。例は次のとおりです。
<?php declare(strict_types=1); return [ 'http' => [ AppMiddlewareAuthMiddleware::class, ], ];
上記のコードは、AuthMiddleware ミドルウェアをグローバル ミドルウェアとして登録し、すべての HTTP リクエストに適用されます。
上記の手順により、Hyperf フレームワークを使用してリクエストをインターセプトできます。リクエストが届くとミドルウェアが順番に実行され、ミドルウェア側でリクエストを傍受・検証し、状況に応じて対応するレスポンスを返すことができます。ミドルウェアを使用すると、さまざまなリクエスト検証要件を簡単に実装できます。
概要: この記事では、Hyperf フレームワークを使用してリクエストをインターセプトする方法を紹介します。カスタム ミドルウェアを作成することで、リクエストを簡単にインターセプトして検証できます。ミドルウェアの handle メソッドを実装することで、リクエストに対してさまざまな操作を実行し、状況に応じて対応するレスポンスを返すことができます。 Hyperf フレームワークのリクエスト インターセプト機能を使用すると、より安全で安定した Web アプリケーションを構築できます。
以上がHyperf フレームワークを使用してリクエストをインターセプトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。