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 eine Anwendungs-Plugin-Struktur mit der gleichen Verzeichnisstruktur und Konfigurationsdateien wie webman. Tatsächlich gibt es praktisch keinen Unterschied in der Entwicklungserfahrung im Vergleich zur normalen Anwendungsentwicklung mit webman. Die Plugin-Verzeichnisse und -Namen folgen dem PSR4-Standard. Da alle Plugins im plugin-Verzeichnis platziert sind, beginnt der Namespace mit plugin, zum Beispiel plugin\foo\app\controller\UserController
.
Über das API-Verzeichnis
Jedes Plugin hat ein API-Verzeichnis. Wenn Ihre Anwendung einige interne Schnittstellen für andere Anwendungen zur Verfügung stellt, müssen Sie die Schnittstellen im API-Verzeichnis ablegen. Beachten Sie, dass hier von Funktionsaufruf-Schnittstellen die Rede ist, nicht von Netzwerkschnittstellen. Zum Beispiel stellt das E-Mail-Plugin
die Schnittstelle Email::send()
in plugin/email/api/Email.php
zur Verfügung, die von anderen Anwendungen zum Versenden von E-Mails aufgerufen werden kann. Darüber hinaus wird plugin/email/api/Install.php
automatisch generiert und von webman-admin-Plugin-Marktplätzen aufgerufen, um Installations- oder Deinstallationsvorgänge auszuführen.