Estructura del directorio
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
Vemos que un plugin de aplicación tiene la misma estructura de directorio y archivos de configuración que webman; en realidad, la experiencia de desarrollo no difiere mucho de la de desarrollar una aplicación webman normal.
La estructura y nomenclatura del plugin sigue la norma PSR4. Dado que los plugins se colocan en el directorio plugin, todos los espacios de nombres comienzan con plugin, por ejemplo, plugin\foo\app\controller\UserController
.
Acerca del directorio api
Cada plugin tiene un directorio api. Si tu aplicación proporciona algunas interfaces internas para que otras aplicaciones las utilicen, debes colocar las interfaces en el directorio api.
Ten en cuenta que las interfaces mencionadas aquí son interfaces de llamada a funciones, no interfaces de llamadas de red.
Por ejemplo, el plugin de correo
proporciona una interfaz Email::send()
en plugin/email/api/Email.php
, que se utiliza para enviar correos a otras aplicaciones.
Además, plugin/email/api/Install.php
es generado automáticamente, y se utiliza para permitir que el mercado de plugins webman-admin ejecute operaciones de instalación o desinstalación.