โครงสร้างไดเรกทอรี
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 ดังนั้น namespace จะเริ่มต้นด้วย plugin เช่น plugin\foo\app\controller\UserController
。
เกี่ยวกับไดเรกทอรี api
ในแต่ละปลั๊กอินจะมีไดเรกทอรี api หากแอปพลิเคชันของคุณมีส่วนติดต่อภายในบางอย่างที่ให้แอปอื่นเรียกใช้ คุณต้องวางส่วนติดต่อในไดเรกทอรี api
โปรดทราบว่าส่วนติดต่อที่กล่าวถึงที่นี่คือส่วนติดต่อการเรียกใช้ฟังก์ชัน ไม่ใช่ส่วนติดต่อการเรียกใช้ทางเครือข่าย
ตัวอย่างเช่น ปลั๊กอินอีเมล
ใน plugin/email/api/Email.php
จะให้ส่วนติดต่อ Email::send()
สำหรับการเรียกใช้เพื่อส่งอีเมลให้กับแอปอื่น
นอกจากนี้ plugin/email/api/Install.php
ถูกสร้างขึ้นโดยอัตโนมัติ เพื่อให้ปลั๊กอิน webman-admin เรียกใช้เพื่อดำเนินการติดตั้งหรือถอนการติดตั้ง