ডিরেক্টরি স্ট্রাকচার

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 প্লাগিন মার্কেট দ্বারা ইনস্টল বা আনইনস্টল কার্যকর করতে কল করা হয়।