Implementácia routera vo vlastnom MVC frameworku

Poďme si teraz napísať náčrt triedy Router v súlade s našimi volaniami:

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

V metóde getTrack musíme určiť, ktorá z rout zodpovedá danému $uri. Na to je potrebné prechádzať naše pole s routami cyklom:

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

Ak nejaká routa zodpovedá URI, my musíme z tohto URI získať hodnoty parametrov routy a vrátiť objekt triedy Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (kontrola zhody routy a URI) {
          $params = ; // je potrebné získať parametre z uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // ak žiadna routa nesedí
    }
  }
?>
Задание 1

Skopírujte môj náčrt triedy Router a umiestnite ho do súboru /core/Router.php.

Задание 2

Implementujte popísanú triedu Router, ktorá vráti objekt triedy Track ako výsledok. Ak budete mať ťažkosti (čo je veľmi pravdepodobné), pozrite sa do zdrojového kódu frameworku, podľa ktorého ste študovali používanie MVC. Tam v triede Router nájdete chýbajúcu časť implementácie a moje komentáre k nej.