Implementación de un enrutador en tu propio framework MVC

Ahora escribamos el esbozo de la clase Router de acuerdo con nuestras llamadas:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // aquí estará el código
    }
  }
?>

En el método getTrack debemos determinar cuál de las rutas corresponde a este $uri. Para ello, necesitamos recorrer nuestro array de rutas con un ciclo:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // verificación de $uri y $route
      }
    }
  }
?>

Si alguna ruta coincide con el URI, nosotros debemos obtener de este URI los valores de los parámetros de la ruta y devolver un objeto de la clase Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (verificación de coincidencia de la ruta y el URI) {
          $params = ; // necesitamos obtener los parámetros del uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // si ninguna ruta coincide
    }
  }
?>
Задание 1

Copie mi esbozo de la clase Router y colóquelo en el archivo /core/Router.php.

Задание 2

Implemente la clase descrita Router, que devuelva como resultado un objeto de la clase Track. Si experimenta dificultades (lo cual es muy probable), consulte el código fuente del framework con el que estudió el uso de MVC. Allí, en la clase Router, encontrará la parte faltante de la implementación y mis comentarios sobre ella.