Implementace routeru ve vlastním MVC frameworku

Nyní si připravme kostru třídy Router v souladu s našimi požadavky:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // zde bude kód
    }
  }
?>

V metodě getTrack musíme určit, která z tras odpovídá danému $uri. K tomu je potřeba projít naše pole s trasami cyklem:

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

Pokud nějaká trasa odpovídá URI, měli bychom z tohoto URI získat hodnoty parametrů trasy a vrátit objekt třídy Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (kontrola shody trasy a URI) {
          $params = ; // je potřeba získat parametry z uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // pokud žádná trasa nesedí
    }
  }
?>
Задание 1

Zkopírujte mou kostru třídy Router a umístěte ji do souboru /core/Router.php.

Задание 2

Implementujte popsanou třídu Router, která vrací objekt třídy Track. Pokud narazíte na potíže (což je velmi pravděpodobné), podívejte se do zdrojového kódu frameworku, podle kterého jste se učili používat MVC. Tam ve třídě Router najdete chybějící část implementace a mé komentáře k ní.