ディレクトリ構造

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 アプリケーション開発とほぼ同じです。

プラグインのディレクトリと命名は PSR-4 規約に従います。プラグインはすべて plugin ディレクトリ以下に配置されるため、名前空間は plugin で始まります。例:plugin\foo\app\controller\UserController

api ディレクトリについて

各プラグインには api ディレクトリがあります。他アプリケーションから呼び出す内部インターフェースを提供する場合は、そのインターフェースを api ディレクトリに配置してください。

注意:ここでいうインターフェースは、関数呼び出しのインターフェースであり、ネットワーク/HTTP インターフェースではありません。

例えば、メールプラグインは plugin/email/api/Email.phpEmail::send() インターフェースを提供し、他アプリケーションからメール送信時に呼び出されます。また、plugin/email/api/Install.php は自動生成され、webman-admin プラグインマーケットがインストール/アンインストール処理を実行する際に使われます。