目錄結構
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插件市場調用執行安裝或卸載操作。