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