ADR-007 - إعادة تصميم نظام الأحداث
ADR-007: إعادة تصميم نظام الأحداث
Section titled “ADR-007: إعادة تصميم نظام الأحداث”تحسين نظام الأحداث للمرونة والأداء والقابلية للصيانة.
الحالة
Section titled “الحالة”مقترح - قيد التقييم لإصدار XOOPS 4.0
السياق
Section titled “السياق”نظام الأحداث الحالي في XOOPS 2.5 له قيود:
- بنية بدائية - نظام بسيط ربط/تشغيل فقط
- الأداء - لا توجد أولويات أو ترتيب الحدث
- تصحيح الأخطاء - يصعب تتبع الحدث وسلاسل المعالجات
- الميراث - لا توجد طريقة لوراثة أحداث الأساسية
- الاختبار - يصعب اختبار سلوك الحدث المعقد
الحدث المقترح
Section titled “الحدث المقترح”تحسينات الأداء
Section titled “تحسينات الأداء”// إضافة أولويات الأحداث$eventDispatcher->addListener('user.created', $handler1, 100); // أعلى أولوية$eventDispatcher->addListener('user.created', $handler2, 50);$eventDispatcher->addListener('user.created', $handler3, 10); // أقل أولويةدعم الأحداث المتسلسلة
Section titled “دعم الأحداث المتسلسلة”// السماح بإيقاف انتشار الأحداث$event->stopPropagation(); // توقف معالجات إضافيةقياس الحدث
Section titled “قياس الحدث”// قياس أداء معالجات الأحداث$event->startTimer('handler_name');// ...معالجة...$event->stopTimer('handler_name');العواقب
Section titled “العواقب”إيجابي
Section titled “إيجابي”- أداء محسّنة من خلال الأولويات
- مرونة أكبر مع السياق والبيانات الحدثية الغنية
- أداة تصحيح أفضل ورؤية في سلسلة الحدث
- توافق مع معايير الصناعة (مثل Symfony Events)
- جهد الهجرة للأحداث الموجودة
- تعقيد إضافي في معالجة الأحداث
- قد تؤثر الأولويات على ترتيب التنفيذ إذا لم يتم تخطيطها بعناية
القرارات ذات الصلة
Section titled “القرارات ذات الصلة”- ADR-001: العمارة المعيارية
- ADR-005: نمط وسيط PSR-15
#xoops #adr #events #architecture