目錄結構
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 開頭,例如 plugin\foo\app\controller\UserController
。
關於 api 目錄
每個插件裏有一個 api 目錄,如果你的應用提供了一些內部接口給其他應用調用,需要將接口放在 api 目錄。
注意,這裏所說的接口是函數調用的接口,非網絡調用的接口。
例如 郵件插件
在 plugin/email/api/Email.php
提供了一個 Email::send()
接口,用於給其他應用調用發郵件。
另外 plugin/email/api/Install.php
是自動生成的,用來讓 webman-admin 插件市場調用執行安裝或卸載操作。