目錄結構
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相同的目錄結構及配置文件,實際上開發(fā)體驗與開發(fā)webman普通應用基本沒有區(qū)別
插件目錄及命名遵循PSR4規(guī)范,因為插件都放置于plugin目錄下,所以命名空間都以plugin開頭,例如plugin\foo\app\controller\UserController
。
關于 api 目錄
每個插件里有一個api目錄,如果你的應用提供了一些內部接口給其它應用調用,需要將接口放在api目錄。
注意,這里所說的接口是函數(shù)調用的接口,非網絡調用的接口。
例如郵件插件
在 plugin/email/api/Email.php
提供了一個Email::send()
接口,用于給其它應用調用發(fā)郵件。
另外 plugin/email/api/Install.php 是自動生成的,用來讓webman-admin插件市場調用執(zhí)行安裝或卸載操作。