Implementacja routera we własnym frameworku MVC

Teraz napiszmy szablon klasy Router zgodnie z naszymi wywołaniami:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // tutaj będzie kod
    }
  }
?>

W metodzie getTrack musimy określić, która z tras odpowiada podanemu $uri. Aby to zrobić, należy przejść pętlą przez naszą tablicę z trasami:

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

Jeśli jakaś trasa odpowiada URI, powinniśmy pobrać z tego URI wartości parametrów trasy i zwrócić obiekt klasy Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (sprawdzenie zgodności trasy i URI) {
          $params = ; // należy pobrać parametry z uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // jeśli żadna trasa nie pasuje
    }
  }
?>
Задание 1

Skopiuj mój szablon klasy Router i umieść go w pliku /core/Router.php.

Задание 2

Zaimplementuj opisaną klasę Router, zwracającą jako wynik obiekt klasy Track. Jeśli napotkasz trudności (co jest bardzo prawdopodobne), zajrzyj do kodu źródłowego frameworka, na podstawie którego uczyłeś się używać MVC. Tam w klasie Router znajdziesz brakującą część implementacji i moje komentarze do niej.