Implementacija rutera u sopstvenom MVC frejmvorku

Hajde sada da napišemo šablon klase Router u skladu sa našim pozivima:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // ovde će biti kod
    }
  }
?>

U metodu getTrack moramo da odredimo, koja ruta odgovara datom $uri. Za to je potrebno da prođemo kroz naš niz sa rutama petljom:

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

Ako neka ruta odgovara URI-ju, mi treba da dobijemo iz tog URI-ja vrednosti parametara rute i da vratimo objekat klase Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (provera podudaranja rute i URI-ja) {
          $params = ; // potrebno je dobiti parametre iz uri-ja
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // ako nijedna ruta ne odgovara
    }
  }
?>
Задание 1

Kopirajte moj šablon klase Router i postavite ga u fajl /core/Router.php.

Задание 2

Implementirajte opisani klas Router, da vraća objekat klase Track kao rezultat. Ako naiđete na poteškoće (što je vrlo verovatno), pogledajte u izvorni kod frejmvorka po kome ste učili korišćenje MVC-a. Tamo ćete u klasi Router naći nedostajući deo implementacije i moje komentare uz nju.