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.