โครงสร้างไดเรกทอรี

plugin/
└── foo
    ├── app
    │   ├── controller
    │   │   └── IndexController.php
    │   ├── exception
    │   │   └── Handler.php
    │   ├── functions.php
    │   ├── middleware
    │   ├── model
    │   └── view
    │       └── index
    │           └── index.html
    ├── config
    │   ├── app.php
    │   ├── autoload.php
    │   ├── container.php
    │   ├── database.php
    │   ├── exception.php
    │   ├── log.php
    │   ├── middleware.php
    │   ├── process.php
    │   ├── redis.php
    │   ├── route.php
    │   ├── static.php
    │   ├── thinkorm.php
    │   ├── translation.php
    │   └── view.php
    ├── public
    └── api

เราสามารถเห็นไดเรกทอรีปลั๊กอินที่มีโครงสร้างและไฟล์กำหนดค่าเหมือนกับ webman ซึ่งจริง ๆ แล้วประสบการณ์การพัฒนากับปลั๊กอินแทบไม่มีความแตกต่างกับการพัฒนาแอปพลิเคชั่นที่ปกติของ webman
การตั้งชื่อและโครงสร้างไดเรกทอรีของปลั๊กอินเหมือนกับข้อกำหนดของ PSR4 โดยที่ชื่อของโครงสร้างพร้อมด้วย plugin เช่น plugin\foo\app\controller\UserController

เกี่ยวกับไดเรกทอรี api

แต่ละปลั๊กอินมีไดเรกทอรี api ถ้าแอปพลิเคชั่นของคุณมีการให้บริการอินเทอร์เฟซภายในให้แอปพลิเคชั่นอื่นเรียกใช้ คุณจำเป็นต้องนำอินเทอร์เฟซไปวางไว้ในไดเรกทอรี api
โปรดทราบว่าที่นี่ที่กล่าวถึงอินเทอร์เฟซ คือ อินเทอร์เฟซของการเรียกใช้ฟังก์ชัน ไม่ใช่การเรียกใช้ทางเครือข่าย
ตัวอย่างเช่น ปลั๊กอินเมล อยู่ใน plugin/email/api/Email.php มีการให้บริการอินเทอร์เฟซ Email::send() ให้แอปพลิเคชั่นอื่นเรียกใช้สำหรับส่งอีเมล
นอกจากนี้ plugin/email/api/Install.php ถูกสร้างโดยอัตโนมัติเพื่อให้ตลาดปลั๊กอิน webman-admin เรียกใช้การติดตั้งหรือถอดการติดตั้งได้