Struttura delle directory

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

Possiamo vedere che un plugin applicativo ha la stessa struttura di directory e file di configurazione di webman; in realtà, l'esperienza di sviluppo è praticamente identica a quella dello sviluppo di applicazioni webman standard.
La directory del plugin e la nomenclatura seguono lo standard PSR4; poiché i plugin sono tutti collocati nella directory plugin, tutti i namespace iniziano con plugin, ad esempio plugin\foo\app\controller\UserController.

Riguardo la directory api

Ogni plugin ha una directory api; se la tua applicazione fornisce alcune interfacce interne per essere chiamate da altre applicazioni, devi posizionare le interfacce nella directory api.
Nota che le interfacce qui menzionate sono interfacce di chiamata di funzione, non interfacce di chiamata di rete.
Ad esempio, il plugin di posta elettronica fornisce un'interfaccia Email::send() in plugin/email/api/Email.php per permettere ad altre applicazioni di inviare email.
Inoltre, plugin/email/api/Install.php è generato automaticamente e serve per permettere al mercato dei plugin webman-admin di eseguire operazioni di installazione o disinstallazione.