Webman एक परियोजना को समय-समय पर कई उप-परियोजनाओं में विभाजित करने के लिए आपको अनुमति देता है, जैसे एक ई-कॉमर्स पोर्टल व्यापार पोर्टल, ई-कॉमर्स एपीआई और ई-कॉमर्स व्यवस्थापन डैशबोर्ड तीन उप-परियोजनाओं में बाँटा जा सकता है, जो सभी एक ही डेटाबेस कॉन्फ़िगरेशन का उपयोग करते हैं।

webman आपको इस प्रकार की योजना बनाने की अनुमति देता है:

app
├── shop
│   ├── controller
│   ├── model
│   └── view
├── api
│   ├── controller
│   └── model
└── admin
    ├── controller
    ├── model
    └── view

जब http://127.0.0.1:8787/shop/{controller}/{method} पते पर जाते हैं तो app/shop/controller में नियंत्रक और विधि तक पहुंचा जाता है।

जब http://127.0.0.1:8787/api/{controller}/{method} पते पर जाते हैं तो app/api/controller में नियंत्रक और विधि तक पहुंचा जाता है।

जब http://127.0.0.1:8787/admin/{controller}/{method} पते पर जाते हैं तो app/admin/controller में नियंत्रक और विधि तक पहुंचा जाता है।

webman में, आप ऐसी योजना भी बना सकते हैं।

app
├── controller
├── model
├── view
│
├── api
│   ├── controller
│   └── model
└── admin
    ├── controller
    ├── model
    └── view

ऐसा करने पर जब पते http://127.0.0.1:8787/{controller}/{method} पर जाते हैं तो app/controller में नियंत्रक और विधि तक पहुंचा जाता है। जब पथ में api या admin से शुरू होता है, तो उसके अनुसार निर्देशिका में नियंत्रक और विधि तक पहुंचा जाता है।

अनुप्रयोगों के लिए नामस्थान अनुरूप psr4 को पूरा करने के लिए उप-परियोजनाएँ, जैसे app/api/controller/FooController.php फ़ाइल निम्नलिखित रीति में हो सकती है:

<?php
namespace app\api\controller;

use support\Request;

class FooController
{

}

मल्टी-एप्लिकेशन मिडलवेयर कॉन्फ़िगरेशन

कभी-कभी आपको अलग-अलग एप्लिकेशन के लिए अलग-अलग मिडलवेयर कॉन्फ़िगर करना चाहिए, जैसे कि api एप्लिकेशन में कोर्स मिडलवेयर की आवश्यकता हो सकती है, admin में व्यवस्थापक लॉगिन की जांच करने वाली मिडलवेयर की आवश्यकता हो सकती है, इसलिए config/midlleware.php को निम्नलिखित तरह कॉन्फ़िगर किया जा सकता है:

return [
    // ग्लोबल मिडलवेयर
    '' => [
        support\middleware\AuthCheck::class,
    ],
    // api एप्लिकेशन मिडलवेयर
    'api' => [
         support\middleware\AccessControl::class,
     ],
    // admin एप्लिकेशन मिडलवेयर
    'admin' => [
         support\middleware\AdminAuthCheck::class,
         support\middleware\SomeOtherClass::class,
    ],
];

उपर्युक्त मिडलवेयर वास्तव में मौजूद नहीं हो सकता, यहाँ सिर्फ एक उदाहरण के रूप में दिया गया है कि कैसे एप्लिकेशन के अनुसार मिडलवेयर कॉन्फ़िगर करें
मिडलवेयर चालू करने का क्रम है ग्लोबल मिडलवेयर -> एप्लिकेशन मिडलवेयर

मिडलवेयर डेवलपमेंट के लिए मिडलवेयर अध्याय का संदर्भ दें।

विभिन्न एप्लिकेशन के लिए असामान्यता प्रसंस्करण कॉन्फ़िगरेशन

एक ही तरह से, आप विभिन्न अप्लिकेशन के लिए विभिन्न असामान्यता प्रसंस्करण क्लास कॉन्फ़िगर करना चाहते हैं, जैसे shop अप्लिकेशन में असामान्यता होने पर आपको एक मित्रपूर्ण सूचना पृष्ठ प्रदान करना चाहिए; api अप्लिकेशन में असामान्यता होने पर आपको वापस एक पृष्ठ का आपलोड नहीं करना है, बल्कि एक json स्ट्रिंग। विभिन्न अप्लिकेशन के लिए अलग-अलग असामान्यता प्रसंस्करण क्लास को कॉन्फ़िगर करने के लिए कॉन्फ़िगरेशन फ़ाइल config/exception.php निम्न रूप में हो सकता है:

return [
    'shop' => support\exception\Handler::class,
    'api' => support\exception\ApiHandler::class,
];

मिडलवेयर की तरह, प्रत्येक अप्लिकेशन केवल एक असामान्यता प्रसंस्करण क्लास को कॉन्फ़िगर कर सकता है।

उपर्युक्त असामान्यता प्रसंस्करण क्लास संभावित रूप से मौजूद नहीं है, यहां केवल एक उदाहरण के रूप में बताया गया है कि कैसे एप्लिकेशन के अनुसार असामान्यता प्रसंस्करण को कॉन्फ़िगर करें।

असामान्यता प्रसंस्करण डेवलपमेंट के लिए इस फाइल को देखें असामान्यता प्रसंस्करण अध्याय