⊗ppMVDFmDs 29 of 35 menu

আপনার নিজস্ব MVC ফ্রেমওয়ার্কে ডিসপ্যাচার তৈরি

ফাইল index.php-এর বর্তমান বিষয়বস্তু মনে রাখা যাক:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // আপনার অটোলোডিং বাস্তবায়ন }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

আপনি দেখতে পাচ্ছেন, এখন পর্যন্ত আমাদের রাউটার Track ক্লাসের একটি অবজেক্ট রিটার্ন করছে, যাতে রয়েছে কন্ট্রোলারের নাম, অ্যাকশনের নাম এবং ঠিকানা বার থেকে প্যারামিটার। এছাড়াও, আগের পাঠে আমরা সমস্ত কন্ট্রোলারের একটি প্যারেন্ট তৈরি করেছি।

এখন আমরা এমন ব্যবস্থা করতে পারি যাতে কন্ট্রোলারের মেথডটি কল হয়, যার ডেটা আমাদের $track ভেরিয়েবলে রয়েছে।

এটি একটি বিশেষ ক্লাস Dispatcher করবে। ডিসপ্যাচার Track ক্লাসের অবজেক্ট পাবে এবং এর ডেটার ভিত্তিতে উল্লিখিত ক্লাসের একটি অবজেক্ট তৈরি করবে, সেই ক্লাসের মেথডটি কল করবে, এই মেথডে প্যারামিটার পাস করবে।

আসুন index.php ফাইলে ডিসপ্যাচার কল যোগ করি:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // আপনার অটোলোডিং বাস্তবায়ন }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // ডিসপ্যাচার কল: $page = ( new Dispatcher ) -> getPage($track); ?>

আমাদের ডিসপ্যাচারের getPage মেথডের কল কন্ট্রোলারের render মেথডটি কল করবে এবং এই মেথড কল যা রিটার্ন করে তা রিটার্ন করবে। আপনি আগের পাঠ থেকে ইতিমধ্যেই জানেন, কন্ট্রোলারের render মেথড Page ক্লাসের একটি অবজেক্ট রিটার্ন করে।

এখানে আমাদের Dispatcher ক্লাসের খসড়া:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...কোড return কন্ট্রোলার -> render(প্যারামিটার); } } ?>

আমার খসড়া ব্যবহার করে বর্ণিত Dispatcher ক্লাসটি বাস্তবায়ন করুন। এর কাজ পরীক্ষা করুন। কোন অসুবিধা হলে আমি তৈরি করা শিক্ষামূলক ফ্রেমওয়ার্কের ফাইলগুলির সোর্স কোড দেখুন।

বাংলা
AfrikaansAzərbaycanБългарскиБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
আমরা সাইট পরিচালনা, বিশ্লেষণ এবং ব্যক্তিগতকরণের জন্য কুকি ব্যবহার করি। ডেটা প্রক্রিয়াকরণ গোপনীয়তা নীতি অনুযায়ী করা হয়।
সব গ্রহণ করুন কনফিগার করুন প্রত্যাখ্যান করুন