Maršrutizatoriaus įgyvendinimas savo MVC karkase

Dabar parašykime klasės Router ruošinį pagal mūsų iškvietimus:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // čia bus kodas
    }
  }
?>

Metode getTrack mes turime nustatyti, kuris iš maršrutų atitinka šį $uri. Tam reikia pereiti mūsų masyvą su maršrutais ciklu:

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

Jei kuris nors maršrutas atitinka URI, mes turime gauti iš šio URI maršruto parametrų reikšmes ir grąžinti klasės Track objektą:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (maršruto ir URI atitikimo patikrinimas) {
          $params = ; // reikia gauti parametrus iš uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // jei nei vienas maršrutas netiks
    }
  }
?>
Задание 1

Nukopijuokite mano klasės Router ruošinį ir patalpinkite jį faile /core/Router.php.

Задание 2

Įgyvendinkite aprašytą klasę Router, kuri grąžina klasės Track objektą. Jei patirsite sunkumų (kas gana tikėtina), pažiūrėkite į pirminį karkaso kodą, pagal kurį mokėtės MVC naudojimą. Ten klasėje Router rasite trūkstamą įgyvendinimo dalį ir mano komentarus jai.