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.