Razvoj usmerjevalnika v lastnem MVC ogrodju

Zdaj morate razviti usmerjevalnik. Predstavlja razred, ki bo vzel matriko poti (routes), vzel zahtevani URL, in določil, katera pot ustreza danemu URL-ju. Po najdbi ustrezne poti mora naš razred dobiti dele URL-ja, ki ustrezajo parametrom poti.

Naj naš usmerjevalnik vrne objekt razreda Track, ki vsebuje ime krmilnika (controller), ki mora biti poklican za to zahtevo, ime akcije in parametre iz URL-ja.

Naj ima naš razred Track lastnosti controller, action in params, ki so samo za branje:

/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;
    }
  }
?>

Primer

Za primer, naj bo v naslovni vrstici vpisan /test/1/2/. Naj imamo pot, ki ustreza temu naslovu:

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

To pomeni, da bo ime krmilnika test, ime akcije - index, matrika parametrov pa bo naslednja:

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

Namen te lekcije je napisati razred Router, ki vrne objekt razreda Track. Ostalo nas za zdaj ne zanima. Počnimo si k pisanju tega razreda.

Praktične naloge

Задание 1

Kopirajte kodo mojega razreda Track in ga postavite v datoteko /core/Track.php.