निर्देशिका संरचना

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.php में Email::send() इंटरफ़ेस प्रदान करता है, जो अन्य ऐप्लिकेशन्स को ईमेल भेजने के लिए उपयोग किया जा सकता है।
आगे, plugin/email/api/Install.php ऑटोमैटिकली जनरेट किया गया है, जिसका उपयोग webman-admin प्लगइन मार्केट द्वारा इंस्टॉलेशन या अनइंस्टॉल ऑपरेशन को कॉल करने के लिए किया जाता है।