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

เริ่มต้นใช้งานฉบับย่อ

ภาพรวมการพัฒนาปลั๊กอิน
การเขียนปลั๊กอินแรกของคุณ
โครงสร้างไดเรกทอรีโปรเจกต์

การพัฒนาฝั่งเซิร์ฟเวอร์

ภาพรวม
ปลั๊กอิน
คอลเลกชัน
การดำเนินการฐานข้อมูล
การจัดการแหล่งข้อมูล
การจัดการทรัพยากร
การควบคุมการเข้าถึง (ACL)
มิดเดิลแวร์
แคช
เหตุการณ์
คอนเท็กซ์คำขอ
สคริปต์การย้ายข้อมูล
ล็อก
การทำให้เป็นสากล (I18n)
คำสั่ง
การจัดการงานที่กำหนดเวลา
การทดสอบ

การพัฒนาฝั่งไคลเอนต์

ภาพรวม
ปลั๊กอิน
คอนเท็กซ์
เราเตอร์
การควบคุมการเข้าถึง (ACL)
การจัดการแหล่งข้อมูล
ทรัพยากร
คำขอ
สไตล์และธีม
ล็อก
การทำให้เป็นสากล (I18n)
การทดสอบ

อื่นๆ

คู่มือการอัปเกรดปลั๊กอิน
รายการภาษา
การจัดการ Dependencies
การสร้าง
Next Pageภาพรวมการพัฒนาปลั๊กอิน
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#ภาพรวมการพัฒนาปลั๊กอิน

NocoBase ใช้ สถาปัตยกรรมแบบไมโครเคอร์เนล (microkernel architecture) โดยที่ส่วนแกนหลัก (core) มีหน้าที่เพียงแค่จัดการวงจรชีวิตของปลั๊กอิน, การจัดการการพึ่งพา และการห่อหุ้มความสามารถพื้นฐานเท่านั้นครับ/ค่ะ ฟังก์ชันทางธุรกิจทั้งหมดจะถูกจัดเตรียมในรูปแบบของปลั๊กอิน ดังนั้น การทำความเข้าใจโครงสร้างองค์กร, วงจรชีวิต และวิธีการจัดการของปลั๊กอิน จึงเป็นก้าวแรกที่สำคัญในการปรับแต่ง NocoBase ครับ/ค่ะ

#แนวคิดหลัก

  • เสียบแล้วใช้ได้ทันที (Plug and Play): สามารถติดตั้ง, เปิดใช้งาน หรือปิดใช้งานปลั๊กอินได้ตามต้องการ ช่วยให้สามารถรวมฟังก์ชันทางธุรกิจได้อย่างยืดหยุ่นโดยไม่ต้องแก้ไขโค้ดครับ/ค่ะ
  • การทำงานแบบ Full-stack (Full-stack Integration): โดยทั่วไปแล้ว ปลั๊กอินจะมีการทำงานทั้งฝั่งเซิร์ฟเวอร์ (server-side) และฝั่งไคลเอนต์ (client-side) เพื่อให้มั่นใจถึงความสอดคล้องกันระหว่างตรรกะข้อมูลและการโต้ตอบกับส่วนติดต่อผู้ใช้ครับ/ค่ะ

#โครงสร้างพื้นฐานของปลั๊กอิน

ปลั๊กอินแต่ละตัวเป็นแพ็กเกจ npm ที่เป็นอิสระ ซึ่งโดยทั่วไปแล้วจะมีโครงสร้างไดเรกทอรีดังนี้ครับ/ค่ะ

plugin-hello/
├─ package.json          # ชื่อปลั๊กอิน, การพึ่งพา (dependencies) และเมตาดาต้าของปลั๊กอิน NocoBase
├─ client.js             # ไฟล์ที่ได้จากการคอมไพล์ฝั่ง Frontend สำหรับโหลดในขณะรันไทม์
├─ server.js             # ไฟล์ที่ได้จากการคอมไพล์ฝั่ง Server-side สำหรับโหลดในขณะรันไทม์
├─ src/
│  ├─ client/            # ซอร์สโค้ดฝั่ง Client-side สามารถลงทะเบียนบล็อก, การดำเนินการ, ฟิลด์ ฯลฯ ได้
│  └─ server/            # ซอร์สโค้ดฝั่ง Server-side สามารถลงทะเบียนทรัพยากร, เหตุการณ์, คำสั่งคอมมานด์ไลน์ ฯลฯ ได้

#ข้อกำหนดของไดเรกทอรีและลำดับการโหลด

โดยค่าเริ่มต้น NocoBase จะสแกนไดเรกทอรีต่อไปนี้เพื่อโหลดปลั๊กอินครับ/ค่ะ

my-nocobase-app/
├── packages/
│   └── plugins/          # ปลั๊กอินที่อยู่ระหว่างการพัฒนา (มีความสำคัญสูงสุด)
└── storage/
    └── plugins/          # ปลั๊กอินที่คอมไพล์แล้ว เช่น ปลั๊กอินที่อัปโหลดหรือเผยแพร่
  • packages/plugins: เป็นไดเรกทอรีสำหรับปลั๊กอินที่กำลังพัฒนาในเครื่อง ซึ่งรองรับการคอมไพล์และการดีบักแบบเรียลไทม์ครับ/ค่ะ
  • storage/plugins: ใช้เก็บปลั๊กอินที่คอมไพล์เรียบร้อยแล้ว เช่น ปลั๊กอินเวอร์ชันเชิงพาณิชย์ หรือปลั๊กอินจากบุคคลที่สามครับ/ค่ะ

#วงจรชีวิตและสถานะของปลั๊กอิน

ปลั๊กอินโดยทั่วไปจะผ่านขั้นตอนต่อไปนี้ครับ/ค่ะ

  1. สร้าง (create): สร้างเทมเพลตปลั๊กอินผ่าน CLI ครับ/ค่ะ
  2. ดึง (pull): ดาวน์โหลดแพ็กเกจปลั๊กอินลงเครื่อง แต่ยังไม่ได้เขียนลงฐานข้อมูลครับ/ค่ะ
  3. เปิดใช้งาน (enable): เมื่อเปิดใช้งานครั้งแรก จะดำเนินการ "ลงทะเบียน + เริ่มต้น (register + initialize)" หากเปิดใช้งานอีกครั้ง จะโหลดเฉพาะตรรกะการทำงานเท่านั้นครับ/ค่ะ
  4. ปิดใช้งาน (disable): หยุดการทำงานของปลั๊กอินครับ/ค่ะ
  5. ลบ (remove): ลบปลั๊กอินออกจากระบบอย่างถาวรครับ/ค่ะ
TIP
  • คำสั่ง pull มีหน้าที่เพียงแค่ดาวน์โหลดแพ็กเกจปลั๊กอินเท่านั้น ส่วนกระบวนการติดตั้งจริงจะถูกเรียกใช้เมื่อมีการ enable ครั้งแรกครับ/ค่ะ
  • หากปลั๊กอินถูก pull มาแล้ว แต่ยังไม่ได้ถูกเปิดใช้งาน จะไม่ถูกโหลดเข้าสู่ระบบครับ/ค่ะ

#ตัวอย่างคำสั่ง CLI

# 1. สร้างโครงสร้างพื้นฐานของปลั๊กอิน
yarn pm create @my-project/plugin-hello

# 2. ดึงแพ็กเกจปลั๊กอิน (ดาวน์โหลดหรือเชื่อมโยง)
yarn pm pull @my-project/plugin-hello

# 3. เปิดใช้งานปลั๊กอิน (จะติดตั้งโดยอัตโนมัติเมื่อเปิดใช้งานครั้งแรก)
yarn pm enable @my-project/plugin-hello

# 4. ปิดใช้งานปลั๊กอิน
yarn pm disable @my-project/plugin-hello

# 5. ลบปลั๊กอิน
yarn pm remove @my-project/plugin-hello

#ส่วนติดต่อผู้ใช้สำหรับจัดการปลั๊กอิน

เข้าถึงตัวจัดการปลั๊กอินในเบราว์เซอร์ เพื่อดูและจัดการปลั๊กอินได้อย่างง่ายดายครับ/ค่ะ

URL เริ่มต้น: http://localhost:13000/admin/settings/plugin-manager

ตัวจัดการปลั๊กอิน