Implementering af router i dit eget MVC framework

Lad os nu skrive skeletet for klassen Router i overensstemmelse med vores kald:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // kode vil være her
    }
  }
?>

I metoden getTrack skal vi bestemme, hvilken af ruterne der svarer til den givne $uri. For at gøre dette skal vi gennemgå vores array med ruter i en løkke:

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

Hvis en rute svarer til URI, skal vi få værdierne for ruteparametrene fra denne URI og returnere et objekt af klassen Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (tjek for overensstemmelse mellem rute og URI) {
          $params = ; // skal hente parametre fra uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // hvis ingen ruter passer
    }
  }
?>
Задание 1

Kopier mit skelet for klassen Router og placer den i filen /core/Router.php.

Задание 2

Implementer den beskrevne klasse Router, som returnerer et objekt af klassen Track som sit resultat. Hvis du oplever vanskeligheder (hvilket er meget sandsynligt), så kig i kildekoden til frameworket, du studerede brugen af MVC efter. Der i klassen Router vil du finde den manglende del af implementeringen og mine kommentarer til den.