A router implementáció saját MVC keretrendszerben

Most írjuk meg a Router osztály vázlatát a hívásainknak megfelelően:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // itt lesz a kód
    }
  }
?>

A getTrack metódusban meg kell határoznunk, hogy a útvonalak közül melyik felel meg az adott $uri-nak. Ehhez ciklussal kell bejárnunk a útvonalak tömbjét:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // $uri és $route ellenőrzése
      }
    }
  }
?>

Ha valamelyik útvonal megfelel az URI-nak, akkor ennék az URI-nak a paramétereit meg kell kapnunk és vissza kell adnunk egy Track osztályú objektumot:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (útvonal és URI egyezésének ellenőrzése) {
          $params = ; // meg kell kapni a paramétereket az uri-ból
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // ha egyetlen útvonal sem illeszkedik
    }
  }
?>
Задание 1

Másolja le a Router osztály vázlatomat és helyezze el a /core/Router.php fájlban.

Задание 2

Valósítsa meg a leírt Router osztályt, aminek eredménye egy Track osztályú objektum visszaadása. Ha nehézségekbe ütközik (ami nagyon valószínű), nézze meg annak a keretrendszernek a forráskódját, amelyből az MVC használatát tanulmányozta. Ott a Router osztályban megtalálja a hiányzó implementációs részt és a hozzászólásaimat hozzá.