Maršrutizatora implementācija savā MVC ietvarā

Tagad izveidosim klases Router sagatavi saskaņā ar mūsu izsaukumiem:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // šeit būs kods
    }
  }
?>

Metodē getTrack mums jānosaka, kurš no maršrutiem atbilst dotajam $uri. Lai to izdarītu, mums ir jāiziet cauri mūsu masīvam ar maršrutiem cikla:

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

Ja kāds maršruts atbilst URI, mums jāiegūst no šī URI maršruta parametru vērtības un jāatgriež klases Track objekts:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (maršruta un URI atbilstības pārbaude) {
          $params = ; // jāiegūst parametri no uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // ja neviens maršruts nederēs
    }
  }
?>
Задание 1

Nokopējiet manu klases Router sagatavi un ievietojiet to failā /core/Router.php.

Задание 2

Implementējiet aprakstīto klasi Router, kas atgriež klases Track objektu. Ja jums radīsies grūtības (kas ir ļoti iespējams), ieskatieties avota kodā ietvara, ar kuru jūs mācījāties MVC izmantošanu. Tur klasē Router jūs atradīsiet trūkstošo implementācijas daļu un manus komentārus par to.