تخطَّ إلى المحتوى

ADR-007 - إعادة تصميم نظام الأحداث

ADR-007: إعادة تصميم نظام الأحداث

Section titled “ADR-007: إعادة تصميم نظام الأحداث”

تحسين نظام الأحداث للمرونة والأداء والقابلية للصيانة.


مقترح - قيد التقييم لإصدار XOOPS 4.0


نظام الأحداث الحالي في XOOPS 2.5 له قيود:

  1. بنية بدائية - نظام بسيط ربط/تشغيل فقط
  2. الأداء - لا توجد أولويات أو ترتيب الحدث
  3. تصحيح الأخطاء - يصعب تتبع الحدث وسلاسل المعالجات
  4. الميراث - لا توجد طريقة لوراثة أحداث الأساسية
  5. الاختبار - يصعب اختبار سلوك الحدث المعقد

// إضافة أولويات الأحداث
$eventDispatcher->addListener('user.created', $handler1, 100); // أعلى أولوية
$eventDispatcher->addListener('user.created', $handler2, 50);
$eventDispatcher->addListener('user.created', $handler3, 10); // أقل أولوية
// السماح بإيقاف انتشار الأحداث
$event->stopPropagation(); // توقف معالجات إضافية
// قياس أداء معالجات الأحداث
$event->startTimer('handler_name');
// ...معالجة...
$event->stopTimer('handler_name');

  • أداء محسّنة من خلال الأولويات
  • مرونة أكبر مع السياق والبيانات الحدثية الغنية
  • أداة تصحيح أفضل ورؤية في سلسلة الحدث
  • توافق مع معايير الصناعة (مثل Symfony Events)
  • جهد الهجرة للأحداث الموجودة
  • تعقيد إضافي في معالجة الأحداث
  • قد تؤثر الأولويات على ترتيب التنفيذ إذا لم يتم تخطيطها بعناية

  • ADR-001: العمارة المعيارية
  • ADR-005: نمط وسيط PSR-15

#xoops #adr #events #architecture