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.