目次構造

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

私たちは、アプリプラグインがwebmanと同じディレクトリ構造と設定ファイルを持っているのを見ます。実際、開発体験はwebmanの通常のアプリケーションと基本的に違いはありません。
プラグインのディレクトリ及び命名はPSR4規範に従っています。プラグインがすべてpluginディレクトリに置かれているため、名前空間はすべてpluginから始まります。例えばplugin\foo\app\controller\UserController

apiディレクトリについて

各プラグインにはapiディレクトリがあり、あなたのアプリが他のアプリに呼び出す内部インターフェースを提供する場合、インターフェースをapiディレクトリに置く必要があります。
注意が必要なのは、ここで言うインターフェースは関数呼び出しのインターフェースであり、ネットワーク呼び出しのインターフェースではありません。
例えば、メールプラグインplugin/email/api/Email.phpEmail::send()インターフェースを提供し、他のアプリからメールを送信するために呼び出されます。
さらに、plugin/email/api/Install.phpは自動生成され、webman-adminプラグインマーケットにインストールまたはアンインストール操作を実行させるために使用されます。