Implementering av en router i ett eget MVC-ramverk

Låt oss nu skriva en grund för klassen Router i enlighet med våra anrop:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // kod kommer att vara här
    }
  }
?>

I metoden getTrack måste vi avgöra vilken av routerna som motsvarar denna $uri. För att göra detta måste vi gå igenom vår array med router med en loop:

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

Om någon rutt motsvarar URI:n, vi måste få värdena för rutparametrarna från denna URI och returnera ett objekt av klassen Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (kontroll av överensstämmelse mellan rutt och URI) {
          $params = ; // behöver få parametrar från uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // om ingen rutt passar
    }
  }
?>
Задание 1

Kopiera min grund för klassen Router och placera den i filen /core/Router.php.

Задание 2

Implementera den beskrivna klassen Router, som returnerar ett objekt av klassen Track som sitt resultat. Om du upplever svårigheter (vilket är mycket troligt), titta i källkoden för ramverket du studerade användningen av MVC. Där i klassen Router hittar du den saknade delen av implementeringen och mina kommentarer till den.