Структура каталога
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.
Обратите внимание, что здесь речь идет об интерфейсах вызова функций, а не сетевых интерфейсах.
Например, плагин для отправки электронной почты
предоставляет интерфейс Email::send()
в plugin/email/api/Email.php
для вызова другими приложениями с целью отправки электронной почты.
Кроме того, plugin/email/api/Install.php
автоматически генерируется и предназначен для вызова установочных или удаляющих операций из рынка плагинов webman-admin.