Rumah >pembangunan bahagian belakang >tutorial php >Menambah konteks permintaan dalam aplikasi Laravel
Berikut adalah contoh praktikal menggunakan konteks permintaan dalam middleware dan permintaan API pembalakan:
<?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; } }Contoh lain menunjukkan cara menggunakan fasad konteks dalam kelas tersuai:
<?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}"); } }Fasad konteks memperkaya pembalakan permohonan dengan menyediakan metadata berharga yang berterusan sepanjang kitaran hayat permintaan, membuat debugging dan pemantauan lebih efisien.
Atas ialah kandungan terperinci Menambah konteks permintaan dalam aplikasi Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!