Имплементација на рутер во вашата 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 ќе најдете што недостасува од имплементацијата и моите коментари за неа.