تمت ترجمة هذا المستند بواسطة الذكاء الاصطناعي. للحصول على معلومات دقيقة، يرجى الرجوع إلى النسخة الإنجليزية.
في NocoBase، توفر إضافة الخادم (Server Plugin) طريقة برمجية معيارية لتوسيع وتخصيص وظائف الخادم. يمكن للمطورين توسيع فئة Plugin من @nocobase/server لتسجيل الأحداث، والواجهات البرمجية (APIs)، وتكوينات الصلاحيات، وغيرها من المنطق المخصص في مراحل دورة الحياة المختلفة.
الهيكل الأساسي لفئة الإضافة هو كما يلي:
يتم تنفيذ طرق دورة حياة الإضافة بالترتيب التالي، ولكل طريقة وقت تنفيذ وغرض محدد:
| طريقة دورة الحياة | وقت التنفيذ | الوصف |
|---|---|---|
| staticImport() | قبل تحميل الإضافة | طريقة فئة ثابتة (static)، تُنفذ خلال مرحلة التهيئة المستقلة عن حالة التطبيق أو الإضافة، وتُستخدم لأعمال التهيئة التي لا تعتمد على مثيلات الإضافة. |
| afterAdd() | تُنفذ فور إضافة الإضافة إلى مدير الإضافات | تم إنشاء مثيل الإضافة، ولكن لم تنتهِ جميع الإضافات من التهيئة بعد. يمكن إجراء بعض أعمال التهيئة الأساسية هنا. |
| beforeLoad() | تُنفذ قبل طريقة load() لجميع الإضافات | يمكن في هذه المرحلة الوصول إلى جميع مثيلات الإضافات المفعلة. مناسبة لتسجيل نماذج قاعدة البيانات، والاستماع لأحداث قاعدة البيانات، وتسجيل البرمجيات الوسيطة (middleware)، وغيرها من أعمال التحضير. |
| load() | تُنفذ عند تحميل الإضافة | تكتمل طريقة beforeLoad() لجميع الإضافات قبل بدء load(). مناسبة لتسجيل الموارد، وواجهات API، والخدمات، وغيرها من منطق الأعمال الأساسي. |
| install() | تُنفذ عند تفعيل الإضافة لأول مرة | تُنفذ مرة واحدة فقط عند تمكين الإضافة لأول مرة، وتُستخدم عادةً لتهيئة هياكل جداول قاعدة البيانات، وإدراج البيانات الأولية، وغيرها من منطق التثبيت. |
| afterEnable() | تُنفذ بعد تمكين الإضافة | تُنفذ في كل مرة يتم فيها تمكين الإضافة، ويمكن استخدامها لبدء المهام المجدولة، وتسجيل المهام، وإنشاء الاتصالات، وغيرها من الإجراءات بعد التمكين. |
| afterDisable() | تُنفذ بعد تعطيل الإضافة | تُنفذ عند تعطيل الإضافة، ويمكن استخدامها لتنظيف الموارد، وإيقاف المهام، وإغلاق الاتصالات، وغيرها من أعمال التنظيف. |
| remove() | تُنفذ عند حذف الإضافة | تُنفذ عند حذف الإضافة تماماً، وتُستخدم لكتابة منطق إلغاء التثبيت، مثل حذف جداول قاعدة البيانات، وتنظيف الملفات، وما إلى ذلك. |
| handleSyncMessage(message) | مزامنة الرسائل في عمليات النشر متعددة العقد | عندما يعمل التطبيق في وضع العقد المتعددة، تُستخدم لمعالجة الرسائل المتزامنة من العقد الأخرى. |
تدفق التنفيذ النموذجي لطرق دورة الحياة:
staticImport()afterAdd() ← beforeLoad() ← load()afterAdd() ← beforeLoad() ← load() ← install()afterAdd() ← beforeLoad() ← load()afterDisable() عند تعطيل الإضافة.remove() عند حذف الإضافة.في تطوير الإضافات، يمكنك الوصول إلى مختلف الواجهات البرمجية (APIs) التي يوفرها مثيل التطبيق من خلال this.app؛ وهو الواجهة الأساسية لتوسيع وظائف الإضافة. يحتوي الكائن app على وحدات وظيفية مختلفة للنظام، ويمكن للمطورين استخدام هذه الوحدات في طرق دورة حياة الإضافة لتنفيذ متطلبات الأعمال.
| اسم العضو | النوع/الوحدة | الغرض الأساسي |
|---|---|---|
| logger | Logger | تسجيل سجلات النظام، يدعم مستويات مختلفة (info, warn, error, debug)، مما يسهل عملية التصحيح والمراقبة. راجع السجلات |
| db | Database | يوفر عمليات طبقة ORM، وتسجيل النماذج، والاستماع للأحداث، والتحكم في المعاملات، وغيرها من الوظائف المتعلقة بقاعدة البيانات. راجع قاعدة البيانات. |
| resourceManager | ResourceManager | يُستخدم لتسجيل وإدارة موارد REST API ومعالجات العمليات. راجع إدارة الموارد. |
| acl | ACL | طبقة التحكم في الوصول، تُستخدم لتعريف الصلاحيات، والأدوار، وسياسات الوصول للموارد، مما يحقق تحكماً دقيقاً في الصلاحيات. راجع التحكم في الصلاحيات. |
| cacheManager | CacheManager | إدارة التخزين المؤقت على مستوى النظام، يدعم Redis والتخزين المؤقت في الذاكرة وغيرها من وسائط التخزين لتحسين أداء التطبيق. راجع التخزين المؤقت |
| cronJobManager | CronJobManager | يُستخدم لتسجيل وبدء وإدارة المهام المجدولة، ويدعم تكوين تعبيرات Cron. راجع المهام المجدولة |
| i18n | I18n | دعم التدويل، يوفر ترجمة لغات متعددة ووظائف التوطين، مما يسهل على الإضافات دعم لغات متعددة. راجع التدويل |
| cli | CLI | إدارة واجهة سطر الأوامر، وتسجيل وتنفيذ الأوامر المخصصة، وتوسيع وظائف NocoBase CLI. راجع سطر الأوامر |
| dataSourceManager | DataSourceManager | إدارة مثيلات مصادر البيانات المتعددة واتصالاتها، ويدعم سيناريوهات مصادر البيانات المتعددة. راجع إدارة مصدر البيانات |
| pm | PluginManager | مدير الإضافات، يُستخدم لتحميل وتمكين وتعطيل وحذف الإضافات ديناميكياً، وإدارة التبعيات بين الإضافات. |
تنبيه: للحصول على تفاصيل استخدام كل وحدة، يرجى الرجوع إلى فصول التوثيق المقابلة.