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

प्लगइन/
└── फू
    ├── एप
    │   ├── नियंत्रक
    │   │   └── IndexController.php
    │   ├── अपवाद
    │   │   └── Handler.php
    │   ├── functions.php
    │   ├── मध्यवर्ती
    │   ├── मॉडल
    │   └── दृश्य
    │       └── इंडेक्स
    │           └── इंडेक्स.html
    ├── कॉन्फिग
    │   ├── ऐप.php
    │   ├── ऑटोलोड.php
    │   ├── कंटेनर.php
    │   ├── डेटाबेस.php
    │   ├── अपवाद.php
    │   ├── लॉग.php
    │   ├── मध्यवर्ती.php
    │   ├── प्रक्रिया.php
    │   ├── रेडिस.php
    │   ├── मार्ग.php
    │   ├── स्टेटिक.php
    │   ├── थिंकएोआरएम.php
    │   ├── अनुवाद.php
    │   └── दृश्य.php
    ├── सार्वजनिक
    └── एपीआई

हम देखते हैं कि एक प्लगइन में वेबमैन की तरहीरकी डिरेक्ट्री संरचना और कॉन्फ़िग फाइल होती है। वास्तव में डेवलपमेंट अनुभव वेबमैन के सामान्य एप्लिकेशन के डेवलपमेंट से कोई अंतर नहीं होता। प्लगइन डायरेक्टरी और नेमिंग पीएसआर 4 नियमानुसार होता है, क्योंकि प्लगइन सभी प्लगइन डायरेक्टरी के अंदर रखे गए हैं, इसलिए नेमस्पेस प्लगइन से शुरू होता है, जैसे plugin\foo\app\controller\UserController

एपीआई डायरेक्टरी के बारे में

प्रत्येक प्लगइन में एक एपीआई डायरेक्टरी होती है, यदि आपका एप्लिकेशन किसी अन्य एप्लिकेशन को कुछ आंतरिक एपीआई प्रदान करता है, तो आपको इंटरफेस को एपीआई डायरेक्टरी में रखना चाहिए। कृपया ध्यान दें, यहां कहीं भी इंटरफेस का मतलब फ़ंक्शन कॉल का इंटरफेस है, और नेटवर्क कॉल का इंटरफेस नहीं। उदाहरण के लिए, ईमेल प्लगइनमें plugin/email/api/Email.phpएक Email::send()इंटरफेस प्रदान करता है, जो दूसरे ऐप्लिकेशन को ईमेल भेजने के लिए कॉल करने के लिए है। इसके अलावा plugin/email/api/Install.phpस्वचालित रूप से उत्पन्न होता है, जिसका उद्देश्य होता है कि वेबमैन-व्यवस्थापक प्लगइन बाज़ार को स्थापित या अनिस्थापित करने के लिए कॉल करे।