Útválasztó fejlesztése saját MVC keretrendszerben

Most egy útválasztót kell fejlesztenie. Ez egy olyan osztály, amely veszi az útvonalak tömbjét, veszi a kért URL-t, és meghatározza, hogy melyik útvonal felel meg az adott URL-nek. Miután megtalálta a megfelelő útvonalat, osztályunknak meg kell kapnia az URL azon részeit, amelyek az útvonal paramétereinek felelnek meg.

Legyen az útválasztó eredménye egy Track osztályú objektum, amely tartalmazza a vezérlő nevét, amelyet meg kell hívni az adott kéréshez, a művelet nevét és az URL-ből származó paramétereket.

Legyen a Track osztályunknak a következő tulajdonságai: controller, action és params, amelyek csak olvashatók:

/core/Track.php<?php
  namespace Core;
  
  class Track
  {
    private $controller;
    private $action;
    private $params;
    
    public function __construct($controller, $action, $params)
    {
      $this->controller = $controller;
      $this->action = $action;
      $this->params = $params;
    }
    
    public function __get($property)
    {
      return $this->$property;
    }
  }
?>

Példa

Példaként tegyük fel, hogy a címsorba beírt /test/1/2/. Tegyük fel, hogy van egy útvonalunk, ami megfelel ennek a címnek:

/project/config/routes.php<?php
  new Route('/test/:var1/:var2/', 'test', 'index');
?>

Ez azt jelenti, hogy a vezérlő neve test lesz, a művelet neve - index, a paraméterek tömbje pedig a következő:

php<?php
  ['var1' => 1, 'var2' => 2]
?>

Ennek a leckének a célja, hogy írjon egy Router osztályt, amely visszaad egy Track osztályú objektumot. A többi egyelőre nem tartozik hozzánk. Kezdjük el írni ezt az osztályt.

Gyakorlati feladatok

Задание 1

Másolja le a Track osztályom kódját és helyezze el a /core/Track.php fájlban.