Laravel-এর context system দিয়ে আপনি কোনো request, job, event, বা command এর সাথে সম্পর্কিত অতিরিক্ত তথ্য (extra data) ক্যাপচার করে রাখতে পারেন।
Context
লগ ফাইলে স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যায়। যেকোনো সময়ে access করা যায়। distributed systems এ execution tracing এর জন্য কাজে লাগে।
Context কবে দরকার হয়?
আপনি কোনো ব্যবহারকারীর কাজ track করতে চান। অথবা কোনো background job কেন fail করলো সেটা trace করতে চান। অথবা চান logged-in user ID সব log entry-তে থাকুক। এসব ক্ষেত্রে আপনি context ব্যবহার করতে পারেন। Laravel Context কীভাবে কাজ করে?
Context সেট করা হয় context() helper দিয়ে:
context([
'user_id' => auth()->id(),
'request_id' => request()->header('X-Request-ID'),
]);
এগুলো এখন সার্ভার এর পুরো লাইফসাইকেলে থাকা শুরু করবে — যতক্ষণ না request শেষ হয় বা queue job সম্পন্ন হয়।
Context globallly কাজ করে:
এটি request, queue job, artisan command — সব জায়গায় propagate করে। অর্থাৎ আপনি এক জায়গায় context() সেট করলে, সব subsequent log message এ সেটা যোগ হয়।
কোথায় Context সংরক্ষণ হয়?
- Laravel context গুলো thread-safe ভাবে service container এর মাধ্যমে store হয়। অর্থাৎ: এটি per-request/per-job scoped।
- আপনি আগের request এর context নতুন request এ পাবেন না।
নিরাপত্তা ও সতর্কতা:
- Context এ sensitive data (যেমন password, token) কখনো রাখবেন না। = কারণ এগুলো log হয়ে যাবে এবং সিকিউরিটি ঝুঁকি বাড়াবে।