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

Ein Anwendungs-Plugin besitzt dieselbe Verzeichnisstruktur und Konfigurationsdateien wie webman. In der Praxis ist die Entwicklungserfahrung praktisch identisch mit der Entwicklung einer normalen webman-Anwendung.

Plugin-Verzeichnisse und -Benennung folgen der PSR-4-Spezifikation. Da alle Plugins im Verzeichnis plugin liegen, beginnen alle Namensräume mit plugin, z. B. plugin\foo\app\controller\UserController.

Über das api-Verzeichnis

Jedes Plugin hat ein api-Verzeichnis. Wenn Ihre Anwendung interne Schnittstellen bereitstellt, die von anderen Anwendungen aufgerufen werden, legen Sie diese Schnittstellen im api-Verzeichnis ab.

Hinweis: Die hier genannten Schnittstellen sind Funktionsaufruf-Schnittstellen, nicht Netzwerk-/HTTP-Schnittstellen.

Beispielsweise bietet das E-Mail-Plugin in plugin/email/api/Email.php die Schnittstelle Email::send() für andere Anwendungen zum Versenden von E-Mails. Außerdem wird plugin/email/api/Install.php automatisch erzeugt, damit der webman-admin-Plugin-Markt Installations- oder Deinstallationsvorgänge ausführen kann.