Implémentation d'un routeur dans son propre framework MVC

Écrivons maintenant l'ébauche de la classe Router conformément à nos appels :

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // le code sera ici
    }
  }
?>

Dans la méthode getTrack, nous devons déterminer laquelle des routes correspond à cet $uri. Pour cela, il faut parcourir notre tableau de routes avec une boucle :

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // vérification de $uri et $route
      }
    }
  }
?>

Si une route correspond à l'URI, nous devons obtenir les valeurs des paramètres de cette URI et retourner un objet de la classe Track :

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (vérification de la correspondance entre la route et l'URI) {
          $params = ; // il faut obtenir les paramètres de l'uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // si aucune route ne convient
    }
  }
?>
Задание 1

Copiez mon ébauche de la classe Router et placez-la dans le fichier /core/Router.php.

Задание 2

Implémentez la classe Router décrite, qui doit retourner comme résultat un objet de la classe Track. Si vous rencontrez des difficultés (ce qui est très probable), regardez le code source du framework que vous avez utilisé pour apprendre l'utilisation de MVC. Là, dans la classe Router, vous trouverez la partie manquante de l'implémentation et mes commentaires à son sujet.