Развој рутера у сопственом MVC оквиру

Сада треба да развијете рутер. Он представља класу која ће узети низ рутова, узети тражени URL, и одредити који од рутова одговара датом урл-у. Након проналажења одговарајућег рута наша класа треба да добије делове URL-а, који одговарају параметрима рута.

Нека наш рутер као резултат враћа објекат класе Track, који садржи име контролера који треба да буде позван на дати захтев, име акције и параметре из URL-а.

Нека наша класа Track има својства controller, action и params, доступна само за читање:

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

Пример

На пример, нека је у адресној линији унето /test/1/2/. Нека постоји рут, који одговара овој адреси:

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

То значи да ће име контролера бити test, име акције - index, а низ параметара биће следећи:

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

Циљ ове лекције - написати класу Router, која враћа објекат класе Track. Остало нас засад не тиче. Хајде да приступимо писању ове класе.

Практични задаци

Задание 1

Копирајте код моје класе Track и поставите га у фајл /core/Track.php.