ホームページ >バックエンド開発 >PHPチュートリアル >Laravelアプリケーションにリクエストコンテキストを追加します
Laravelのコンテキストファサードは、リクエストライフサイクル全体に永続的なメタデータを追加できるようにすることにより、アプリケーションの洞察を強化します。このコンテキストは、貴重なデバッグ情報でログを自動的に濃縮します。
以下は、ミドルウェアとAPIリクエストロギングでリクエストコンテキストを使用する実用的な例です。
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Context; use Illuminate\Support\Str; class ApiRequestLogger { public function handle(Request $request, Closure $next) { // 添加基本的请求上下文 Context::add('request_id', Str::uuid()->toString()); Context::add('path', $request->path()); Context::add('method', $request->method()); // 如果已认证,则添加用户上下文 if ($request->user()) { Context::add('user_id', $request->user()->id); Context::add('api_key', $request->user()->api_key); } // 添加性能指标 $startTime = microtime(true); $response = $next($request); Context::add('response_time', round((microtime(true) - $startTime) * 1000, 2)); Context::add('status_code', $response->getStatusCode()); // 记录 API 请求 Log::info('API request processed'); return $response; } }別の例は、カスタムクラスでコンテキストファサードを使用する方法を示しています:
<?php use Illuminate\Support\Facades\Context; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; class RequestContext { public function __construct() { Context::add('request_id', Str::uuid()->toString()); } public function addUserContext() { if (Auth::check()) { Context::add('user_id', Auth::id()); Context::add('user_type', Auth::user()->type); } } public function logAction(string $action) { Log::info("User performed {$action}"); } }コンテキストファサードは、リクエストのライフサイクル全体で持続する貴重なメタデータを提供することにより、アプリケーションのロギングを豊かにし、デバッグと監視をより効率的にします。
以上がLaravelアプリケーションにリクエストコンテキストを追加しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。