Estructura de directorios
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
Observamos una estructura de directorios y archivos de configuración similar a la de webman dentro de un complemento de la aplicación. De hecho, la experiencia de desarrollo es casi idéntica a la de desarrollar una aplicación webman normal.
Los nombres de los directorios y los complementos siguen la especificación PSR4. Debido a que los complementos se almacenan en el directorio plugin
, todos los espacios de nombres comienzan con plugin
, por ejemplo, plugin\foo\app\controller\UserController
.
Acerca del directorio api
Cada complemento tiene un directorio llamado api
. Si su aplicación proporciona algunas interfaces internas para que otras aplicaciones las utilicen, es necesario colocar esas interfaces en el directorio api
.
Es importante destacar que estas interfaces hacen referencia a llamadas de funciones, no a llamadas de red. Por ejemplo, el complemento de correo electrónico
proporciona una interfaz Email::send()
en plugin/email/api/Email.php
para que otras aplicaciones envíen correos electrónicos.
Además, plugin/email/api/Install.php
se genera automáticamente para permitir que webman-admin llame a la tienda de complementos para realizar operaciones de instalación o desinstalación.