নিজস্ব MVC ফ্রেমওয়ার্কে রাউটার বাস্তবায়ন

আসুন এখন আমাদের কল অনুযায়ী Router ক্লাসের একটি খসড়া লিখি:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // এখানে কোড থাকবে
    }
  }
?>

getTrack পদ্ধতিতে, আমাদের নির্ধারণ করতে হবে যে কোন রাউটটি এই $uri-এর সাথে মেলে। এটি করার জন্য, আমাদের রাউটগুলির অ্যারেটি একটি লুপ দিয়ে পরীক্ষা করতে হবে:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // $uri এবং $route চেক করা
      }
    }
  }
?>

যদি কোন রাউট URI-এর সাথে মেলে, আমাদের সেই URI থেকে রাউট প্যারামিটারের মানগুলি পাওয়া উচিত এবং Track ক্লাসের একটি অবজেক্ট ফেরত দিতে হবে:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (রাউট এবং URI-এর মিল পরীক্ষা) {
          $params = ; // uri থেকে প্যারামিটার পাওয়া দরকার
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // যদি কোন রাউট না মেলে
    }
  }
?>
Задание 1

আমার তৈরি করা Router ক্লাসের খসড়াটি কপি করুন এবং এটিকে /core/Router.php ফাইলে রাখুন।

Задание 2

বর্ণিত Router ক্লাসটি বাস্তবায়ন করুন, যার ফলাফল Track ক্লাসের একটি অবজেক্ট ফেরত দেবে। যদি আপনি অসুবিধায় পড়েন (যা খুবই সম্ভবত), তাহলে আপনি যে MVC ব্যবহার শিখেছেন সেই ফ্রেমওয়ার্কের সোর্স কোড দেখুন। সেখানে Router ক্লাসে আপনি বাস্তবায়নের অভাবপূর্ণ অংশ এবং এটির উপর আমার মন্তব্য পাবেন।