মাল্টিপল অ্যাপ্লিকেশন

সময়ের সাথে একটি প্রকল্প একাধিক উপ-প্রকল্পে ভাগ করা হতে পারে, যেমন, একটি মল্লে মেইন প্রকল্প, মল্লে API ইন্টারফেস এবং মল্লে ম্যানেজমেন্ট ড্যাশবোর্ড তিনটি উপ-প্রকল্পে ভাগ করা যেতে পারে, আমরা তারা সবাই একের মধ্যে একই ডাটাবেস কনফিগারেশন ব্যবহার করতে পারে।

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
{}

মাল্টিপল অ্যাপ্লিকেশন মিডলওয়্যার কনফিগারেশন

কারSometimes আপনি ভিন্ন অ্যাপ এর জন্য ভিন্ন মিডলওয়্যার কনফিগার করতে চান, উদাহরণস্বৰূপ, 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,
    ],
];

উপরের মিডলওয়্যার এখানে অস্তিত্ব রাখবেন না, এখানে শুধুমাত্র উদাহারণের জন্য ডেখানো হচ্ছে যেভাবে করে আপনি অ্যাপ ভিত্তিক কনফিগার করতে পারেন।
মিডলওয়্যার পরিকল্পনা মূল্যা Decre দেব Indicates থেকে গ্লোবাল মিডলওয়্যার -> অ্যাপ মিডলওয়্যার

মিডলওয়্যার ডেভেলপম্যান্ট যাচাই করুন [মিডলওয়্‌যার অধ্যায়] (middleware.html)

মাল্টিপল অ্যাপ্লিকেশন অস্ত্রিত প্রক্রিয়া বিষয়ক কনফিগারেশন

একই ভাবা আপনি ভিন্ন অ্যাপ এ জন্য ভিন্ন অস্ত্রিত প্রক্রিয়া হ্যান্ডেল করতে চান, উদাহরণস্বরূপ, 'শপ' অ্যাপ এ একটি অস্ত্রিত প্রক্রিয়া 'হ্যান্ডেল করার জন্য আপনি একটি বন্ধুত্বপূর্ণ পরীক্ষা পেজ প্রদান করতে চাইতে পারেন; 'api' অ্যাপ এ একটি অস্ত্রিত প্রক্রিয়া এর বদলে একটি জনসংখ্যার স্ট্রিং রিটার্ন করতে চান। প্রত্যেক অ্যাপ এর জন্য আলাদা অস্ত্রিত প্রক্রিয়া প্রদান করার জন্য আপনি 'কনফিগ/অ্যাপ্সু্তুন.php' এর জন্য কনফিগার করতে পারেন:

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

মিডলওয়্‌যার থেকে ভিন্ন হতে যাওয়ার মত, প্রতিটি অ্যাপ একটি অস্ত্রিত প্রক্রিয়া হ্যান্ডেল করার জন্য গরিয়ত করা যেতে পারে।

উপরে অস্ত্রিত প্রক্রিয়া হ্যান্ডেলার সম্ভাব্যতঃ অসত্য। এখানে শুধুমাত্র ডেমো উদাহারণ উল্লেখ করার জন্য দেখা হয়েছে যেভাবে আপনি অ্যাপ ভিত্তিক অস্ত্রিত প্রক্রিয়াকে কনফিগার করতে পারেন।

অস্ত্রিত প্রক্রিয়া হ্যান্ডেলার ডেভেলপম্যান্ট যাচাই করুন [অস্ত্রিত প্রক্রিয়া বিষয়ক ধ্রোপ] (exception.html)