Structure du répertoire
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
Nous voyons qu'un plugin d'application a la même structure de répertoire et les mêmes fichiers de configuration que Webman, en réalité, l'expérience de développement est pratiquement identique à celle du développement d'une application Webman ordinaire.
Le répertoire et la nommage des plugins suivent la norme PSR4, puisque les plugins sont tous placés dans le répertoire plugin, les espaces de noms commencent donc par plugin, par exemple plugin\foo\app\controller\UserController
.
À propos du répertoire api
Chaque plugin contient un répertoire api. Si votre application propose certaines interfaces internes à d'autres applications, il est nécessaire de placer les interfaces dans le répertoire api.
Notez que les interfaces mentionnées ici sont des interfaces d'appel de fonctions, et non des interfaces d'appel réseau.
Par exemple, le plugin de messagerie
fournit une interface Email::send()
dans plugin/email/api/Email.php
, permettant à d'autres applications d'envoyer des e-mails.
De plus, plugin/email/api/Install.php
est généré automatiquement, afin de permettre au marché du plugin webman-admin d'effectuer des opérations d'installation ou de désinstallation.