Dizin Yapısı

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

Bir uygulama eklentisinin webman ile aynı dizin yapısına ve yapılandırma dosyalarına sahip olduğunu görüyoruz, aslında geliştirme deneyimi webman ile normal bir uygulama geliştirmek arasında temelde fark yoktur.
Eklenti dizini ve isimlendirme PSR4 standardına uymaktadır, çünkü eklentiler plugin dizininde yer almaktadır, bu nedenle ad alanları plugin ile başlamaktadır; örneğin plugin\foo\app\controller\UserController.

api Dizin Hakkında

Her eklenti içinde bir api dizini bulunur; eğer uygulamanız başka uygulamalar tarafından çağrılabilecek bazı iç arayüzler sağlıyorsa, arayüzleri api dizinine koymalısınız.
Burada bahsedilen arayüz, fonksiyon çağrısı arayüzüdür, ağ üzerinden çağrılan arayüz değil.
Örneğin, e-posta eklentisi plugin/email/api/Email.php içerisinde Email::send() arayüzünü sağlar, bu diğer uygulamalara e-posta göndermek için çağrılmak üzere kullanılır.
Ayrıca, plugin/email/api/Install.php otomatik olarak oluşturulmuştur ve webman-admin eklenti pazarının yükleme veya kaldırma işlemlerini gerçekleştirmesi için kullanılmaktadır.