Verzeichnisstruktur

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

Wir sehen, dass ein Anwendungs-Plugin die gleiche Verzeichnisstruktur und Konfigurationsdateien wie webman hat; tatsächlich unterscheidet sich die Entwicklererfahrung bei der Entwicklung eines normalen webman-Anwendungsprojekts nicht wesentlich.
Das Verzeichnis und die Benennung der Plugins folgen dem PSR4-Standard. Da die Plugins im Verzeichnis plugin abgelegt sind, beginnen alle Namespaces mit plugin, zum Beispiel plugin\foo\app\controller\UserController.

Über das Verzeichnis api

In jedem Plugin gibt es ein api-Verzeichnis. Wenn Ihre Anwendung interne Schnittstellen für andere Anwendungen bereitstellt, sollten die Schnittstellen im api-Verzeichnis abgelegt werden.
Bitte beachten Sie, dass hiermit die Schnittstellen für Funktionsaufrufe gemeint sind, nicht die Schnittstellen für Netzwerkaufrufe.
Beispielsweise bietet das E-Mail-Plugin in plugin/email/api/Email.php eine Schnittstelle Email::send() an, um E-Mails an andere Anwendungen zu senden.
Darüber hinaus ist plugin/email/api/Install.php automatisch generiert und dient dazu, Installations- oder Deinstallationsoperationen durch das webman-admin Plugin-Markt aufrufen zu lassen.