O'z MVC freymvorkingizda routerni amalga oshirish

Keling, endi Router klassining qolipini bizning chaqiruvlarimizga muvofiq yozamiz:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // bu yerda kod bo'ladi
    }
  }
?>

getTrack metodida biz qaysi route berilgan $uri ga mos kelishini aniqlashimiz kerak. Buning uchun route'lar massivini siklda aylantirish kerak:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // $uri va $route'ni tekshirish
      }
    }
  }
?>

Agar qandaydir route URIga mos kelsa, biz ushbu URIdan route parametrlarining qiymatlarini olib, Track klassining ob'ektini qaytarishimiz kerak:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (route va URIning mosligini tekshirish) {
          $params = ; // uridan parametrlarni olish kerak
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // agar hech bir route mos kelmasa
    }
  }
?>
Задание 1

Router klassining qolipini nusxalab oling va /core/Router.php faylida joylashtiring.

Задание 2

Router klassini amalga oshiring, natijada Track klassining ob'ektini qaytaradigan. Agar qiynalsangiz (bu juda ehtimol), MVC dan foydalanishni o'rgangan freymvorkingizning manba kodiga qarang. U erda Router klassida amalga oshirishning yetishmayotgan qismini va unga izohlarimni topasiz.