מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
ב-NocoBase, תוסף צד-שרת (Server Plugin) מציע דרך מודולרית להרחבת והתאמת הפונקציונליות של צד השרת. מפתחים יכולים להרחיב את מחלקת ה-Plugin מתוך @nocobase/server כדי לרשום אירועים, ממשקי API, הגדרות הרשאות ולוגיקה מותאמת אישית אחרת בשלבי מחזור חיים שונים.
מבנה מחלקת תוסף בסיסית נראה כך:
שיטות מחזור החיים של התוסף מבוצעות לפי הסדר הבא, ולכל שיטה יש עיתוי וייעוד ספציפיים משלה:
| שיטת מחזור חיים | עיתוי ביצוע | תיאור |
|---|---|---|
| staticImport() | לפני טעינת התוסף | שיטה סטטית של המחלקה, מבוצעת בשלב האתחול שאינו תלוי במצב היישום או התוסף, ומשמשת לעבודת אתחול שאינה תלויה במופעי תוספים. |
| 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() מבוצעת כאשר התוסף נמחק.בפיתוח תוספים, ניתן לגשת למגוון ממשקי ה-API שמספק מופע היישום דרך 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 | ניהול ממשק שורת הפקודה, רישום וביצוע פקודות מותאמות אישית, הרחבת פונקציונליות ה-CLI של NocoBase. ראו שורת פקודה |
| dataSourceManager | DataSourceManager | ניהול מופעי מקורות נתונים מרובים וחיבוריהם, תומך בתרחישי ריבוי מקורות נתונים. ראו ניהול מקורות נתונים |
| pm | PluginManager | מנהל תוספים, משמש לטעינה דינמית, הפעלה, השבתה ומחיקה של תוספים, וניהול יחסי תלות בין תוספים. |
הערה: לשימוש מפורט בכל מודול, אנא עיינו בפרקי התיעוד המתאימים.