logologo
התחלה
מדריך
פיתוח
תוסף
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
התחלה
מדריך
פיתוח
תוסף
API
logologo

התחלה מהירה

סקירת פיתוח Plugin
כתיבת Plugin ראשון
מבנה תיקיות הפרויקט

פיתוח Server-side

סקירה כללית
Plugin
Collections טבלאות נתונים
Database: פעולות
DataSourceManager - ניהול מקורות נתונים
ResourceManager
ACL בקרת הרשאות
Middleware
Cache
Event
Context - הקשר בקשה
Migration סקריפט שדרוג
Logger יומן
Telemetry
I18n בינאום
Command
CronJobManager ניהול משימות מתוזמנות
Test

פיתוח Client-side

סקירה כללית
Plugin
Context
Router ניתוב
ACL בקרת הרשאות
DataSourceManager - ניהול מקורות נתונים
Resource
Request
Styles & Themes
Logger יומן
I18n בינאום
Test

אחר

מדריך שדרוג Plugin
רשימת שפות
ניהול תלויות
בנייה
Previous Pageסקירה כללית
Next PageCollections טבלאות נתונים
TIP

מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית

#תוסף

ב-NocoBase, תוסף צד-שרת (Server Plugin) מציע דרך מודולרית להרחבת והתאמת הפונקציונליות של צד השרת. מפתחים יכולים להרחיב את מחלקת ה-Plugin מתוך @nocobase/server כדי לרשום אירועים, ממשקי API, הגדרות הרשאות ולוגיקה מותאמת אישית אחרת בשלבי מחזור חיים שונים.

#מחלקת התוסף

מבנה מחלקת תוסף בסיסית נראה כך:

import { Plugin } from '@nocobase/server';

export class PluginHelloServer extends Plugin {
  async afterAdd() {}

  async beforeLoad() {}

  async load() {}

  async install() {}

  async afterEnable() {}

  async afterDisable() {}

  async remove() {}

  async handleSyncMessage(message: Record<string, any>) {}

  static async staticImport() {}
}

export default PluginHelloServer;

#מחזור חיים

שיטות מחזור החיים של התוסף מבוצעות לפי הסדר הבא, ולכל שיטה יש עיתוי וייעוד ספציפיים משלה:

שיטת מחזור חייםעיתוי ביצועתיאור
staticImport()לפני טעינת התוסףשיטה סטטית של המחלקה, מבוצעת בשלב האתחול שאינו תלוי במצב היישום או התוסף, ומשמשת לעבודת אתחול שאינה תלויה במופעי תוספים.
afterAdd()מבוצעת מיד לאחר שהתוסף נוסף למנהל התוספיםבשלב זה מופע התוסף כבר נוצר, אך לא כל התוספים סיימו את האתחול. ניתן לבצע עבודות אתחול בסיסיות.
beforeLoad()מבוצעת לפני כל שיטות ה-load() של התוספיםבשלב זה ניתן לגשת לכל מופעי התוספים המופעלים. מתאימה לרישום מודלים של מסד נתונים, האזנה לאירועי מסד נתונים, רישום Middleware ועבודות הכנה אחרות.
load()מבוצעת בעת טעינת התוסףכל שיטות ה-beforeLoad() של התוספים מסתיימות לפני ש-load() מתחילה. מתאימה לרישום משאבים, ממשקי API, שירותים ולוגיקה עסקית מרכזית אחרת.
install()מבוצעת כאשר התוסף מופעל לראשונהמבוצעת פעם אחת בלבד כאשר התוסף מופעל לראשונה, ומשמשת בדרך כלל לאתחול מבני טבלאות מסד נתונים, הוספת נתונים ראשוניים ולוגיקת התקנה אחרת.
afterEnable()מבוצעת לאחר הפעלת התוסףמבוצעת בכל פעם שהתוסף מופעל, וניתן להשתמש בה להפעלת משימות מתוזמנות, רישום משימות מתוכננות, יצירת חיבורים ופעולות אחרות לאחר הפעלה.
afterDisable()מבוצעת לאחר השבתת התוסףמבוצעת כאשר התוסף מושבת, וניתן להשתמש בה לניקוי משאבים, עצירת משימות, סגירת חיבורים ועבודות ניקוי אחרות.
remove()מבוצעת כאשר התוסף נמחקמבוצעת כאשר התוסף נמחק לחלוטין, ומשמשת לכתיבת לוגיקת הסרה, כגון מחיקת טבלאות מסד נתונים, ניקוי קבצים וכו'.
handleSyncMessage(message)סנכרון הודעות בפריסה מרובת צמתיםכאשר היישום פועל במצב מרובה צמתים, משמשת לטיפול בהודעות המסונכרנות מצמתים אחרים.

#תיאור סדר הביצוע

זרימת הביצוע הטיפוסית של שיטות מחזור החיים:

  1. שלב אתחול סטטי: staticImport()
  2. שלב הפעלת היישום: afterAdd() → beforeLoad() → load()
  3. שלב הפעלת תוסף ראשונית: afterAdd() → beforeLoad() → load() → install()
  4. שלב הפעלת תוסף חוזרת: afterAdd() → beforeLoad() → load()
  5. שלב השבתת תוסף: afterDisable() מבוצעת כאשר התוסף מושבת.
  6. שלב מחיקת תוסף: remove() מבוצעת כאשר התוסף נמחק.

#app וחברים קשורים

בפיתוח תוספים, ניתן לגשת למגוון ממשקי ה-API שמספק מופע היישום דרך this.app, וזהו ממשק הליבה להרחבת פונקציונליות התוסף. אובייקט ה-app מכיל את מודולי הפונקציונליות השונים של המערכת. מפתחים יכולים להשתמש במודולים אלה בשיטות מחזור החיים של התוסף כדי ליישם דרישות עסקיות.

#רשימת חברי app

שם חברסוג/מודולשימוש עיקרי
loggerLoggerתיעוד יומני מערכת, תומך בפלט יומנים ברמות שונות (info, warn, error, debug), נוח לניפוי באגים וניטור. ראו יומן
dbDatabaseמספק פעולות שכבת ORM, רישום מודלים, האזנה לאירועים, בקרת טרנזקציות ופונקציות קשורות למסד נתונים. ראו מסד נתונים.
resourceManagerResourceManagerמשמש לרישום וניהול משאבי REST API ומטפלי פעולות. ראו ניהול משאבים.
aclACLשכבת בקרת גישה, משמשת להגדרת הרשאות, תפקידים ומדיניות גישה למשאבים, ומיישמת בקרת הרשאות מדויקת. ראו בקרת גישה.
cacheManagerCacheManagerניהול מטמון ברמת המערכת, תומך ב-Redis, מטמון זיכרון ועורפי מטמון אחרים, לשיפור ביצועי היישום. ראו מטמון
cronJobManagerCronJobManagerמשמש לרישום, הפעלה וניהול משימות מתוזמנות, תומך בתצורת ביטויי Cron. ראו משימות מתוזמנות
i18nI18nתמיכה בבינאום, מספק פונקציונליות תרגום ו לוקליזציה רב-לשונית, נוח לתוספים לתמוך במספר שפות. ראו בינאום
cliCLIניהול ממשק שורת הפקודה, רישום וביצוע פקודות מותאמות אישית, הרחבת פונקציונליות ה-CLI של NocoBase. ראו שורת פקודה
dataSourceManagerDataSourceManagerניהול מופעי מקורות נתונים מרובים וחיבוריהם, תומך בתרחישי ריבוי מקורות נתונים. ראו ניהול מקורות נתונים
pmPluginManagerמנהל תוספים, משמש לטעינה דינמית, הפעלה, השבתה ומחיקה של תוספים, וניהול יחסי תלות בין תוספים.

הערה: לשימוש מפורט בכל מודול, אנא עיינו בפרקי התיעוד המתאימים.