कई एप्लिकेशन

कभी-कभी एक प्रोजेक्ट को कई उप-प्रोजेक्टों में विभाजित किया जाता है, जैसे कि एक शॉपिंग मॉल को शॉपिंग मॉल मुख्य प्रोजेक्ट, शॉपिंग मॉल एपीआई इंटरफ़ेस, शॉपिंग मॉल प्रबंधन बैकएंड के 3 उप-प्रोजेक्टों में विभाजित किया जा सकता है, जो सभी समान डेटाबेस कॉन्फ़िगरेशन का उपयोग करते हैं।

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

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

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

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

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

webman में, आप एप्लिकेशन निर्देशिका को इस प्रकार भी व्यवस्थित कर सकते हैं।

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

इस तरह, जब पता http://127.0.0.1:8787/{नियंत्रक}/{विधि} पर जाता है, तो यह 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,
];

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

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

अपवाद प्रसंस्करण विकास का संदर्भ अपवाद प्रसंस्करण अध्याय