نظرة معمقة على Laravel Context: تسجيل وتحليل السياق البرمجي باحترافية

يوليو 20, 2025

في Laravel 12، تم تقديم Laravel Context كأداة قوية بتخلي تتبع الطلبات، تسجيل الأخطاء، وتحليل سلوك الوظائف الخلفية أسهل وأدق من أي وقت فات. وده بيحصل عن طريق تمرير معلومات "السياق" تلقائيًا في كل طبقات التطبيق.

يعني إيه Laravel Context فعليًا؟

هي آلية لتخزين معلومات إضافية (زي ID المستخدم، أو كود الطلب) في ذاكرة السياق الخاصة بالطلب. Laravel بيضمن إن المعلومات دي تنتقل مع أي عملية لاحقة زي إرسال Job، أو حدث، أو حتى Exception.

السيناريو العملي: تتبع المستخدم في سجل الأخطاء

تخيل إن فيه مستخدم واجه خطأ أثناء استخدام الموقع. بدل ما تسجل بس الخطأ، تقدر تسجل كمان بياناته زي الـ ID أو عنوان الـ IP:

// في AppServiceProvider أو Middleware عام
use Illuminate\Support\Facades\Context;

public function boot()
{
    Context::add('user_id', auth()->id() ?? 'guest');
    Context::add('ip', request()->ip());
    Context::add('path', request()->path());
}
  

تسجيل البيانات داخل Job

لما تبعت Job من الكونترولر، Laravel هيبعت معاه السياق اللي اتسجل:

// Controller
SomeJob::dispatch($data);

// داخل الـ Job نفسه:
public function handle()
{
    \Log::info('تشغيل الوظيفة', [
        'user_id' => Context::get('user_id'),
        'ip' => Context::get('ip'),
        'route' => Context::get('path'),
    ]);
}
  

استخدام Laravel Context في التقارير والأخطاء

أنت ممكن تربط السياق بأي عملية تسجيل أو إرسال إخطار، زي:

try {
    // كود قد يسبب خطأ
} catch (\Exception $e) {
    \Log::error('حصل استثناء', [
        'exception' => $e->getMessage(),
        'context' => Context::all()
    ]);
}
  

نصائح احترافية عند استخدام Laravel Context

  • استخدمه بدري: حط بيانات السياق في Middleware بيتنفذ أول ما الطلب يوصل.
  • استخدم بيانات مختارة: متحطش بيانات ضخمة أو خاصة، اكتفي بحاجات تساعدك تتبع الخطأ.
  • تحديث السياق: ممكن تعدل أو تحذف مفتاح من السياق في وقت لاحق بـ Context::remove('key').
  • لا تستخدمه لتخزين بيانات التطبيق: السياق للـ debugging والتحليل بس، مش لحفظ بيانات المستخدم.

ملخص

Laravel Context أداة قوية هتساعدك تشوف الصورة الكاملة للعمليات في تطبيقك، وخصوصًا في الأنظمة اللي فيها Queue أو Microservices. بمجرد ما تبدأ تستخدمها صح، هتقلل وقت البحث عن الأخطاء وهتعرف توصل لمصدر أي مشكلة بسهولة.

المدونة

React Native 0.80 وExecuTorch: بداية قوية للذكاء الاصطناعي المحلي في تطبيقات الموبايل

يوليو 28, 2025

🚀 الجديد في React Native 0.80 بالتفصيل الإصدار React Native 0.80 يعتبر نقطة تحول حقيقية في عالم تطوير تطبيقات الموبايل باستخدام React Native. التح...

تاريخ React – استعراض شامل وتحليل تقني

يوليو 26, 2025

1. البدايات: النشأة داخل Facebook في عام 2011، واجه مهندسو Facebook تحديًا متزايدًا في صيانة واجهات المستخدم المعقدة والتفاعلية. تم تطوير مكتبة د...

إزاي تستخدم Web Components ببساطة وذكاء

يوليو 06, 2025

إزاي تستخدم Web Components ببساطة وذكاء كتير من المطورين بيفكروا إن Web Components معمولة عشان تبقى بديل كامل لفريموركات زي React أو Vue. بس الحقيق...

إزاي OAuth بيشتغل

يونيو 29, 2025

إزاي OAuth بيشتغل؟ OAuth هو بروتوكول بيخلّي التطبيقات تقدر تدخل على بياناتك بطريقة آمنة من غير ما تدّيهم الباسورد بتاعك. زي مثلًا لو حبيت تطبيق ينشر...

Notifire + FCM مع Laravel

سبتمبر 13, 2025

لو محتاج تبعت إشعارات Push من تطبيق Laravel سواء للموبايل أو للويب، فالحل الأسرع والأبسط هو إنك تستخدم Notifire اللي بيربط Laravel مباشرةً مع Fireba...

نظام طوابير Laravel واستخدام Supervisor في الإنتاج

يوليو 01, 2025

🚀 نظام Queue & Jobs في Laravel هناخدك خطوة خطوة من أول إنشاء الجداول لحد ما تشغّل الطوابير في Production عن طريق Supervisor. الخطوة 1: إنشاء...