Reitittimen kehittäminen omaan MVC-kehyskeeseen

Nyt sinun täytyy kehittää reititin. Se on luokka, joka ottaa reittitaulukon, ottaa pyydetyn URL-osoitteen, ja määrittää, mikä reiteistä vastaa kyseistä URL-osoitetta. Vastaavan reitin löytymisen jälkeen luokkamme tulee saada URL-osoitteen osat, jotka vastaavat reitin parametreja.

Olkoon reitittimemme tuloksena luokan Track olio, joka sisältää ohjaimen nimen, joka tulisi kutsua kyseiselle pyynnölle, toiminnon nimen ja parametrit URL-osoitteesta.

Olkoon luokallamme Track ominaisuudet controller, action ja params, vain luku -muodossa:

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

Esimerkki

Esimerkiksi, olkoon osoiteriville syötetty /test/1/2/. Olkoon meillä reitti, joka vastaa tätä osoitetta:

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

Tämä tarkoittaa, että ohjaimen nimi on test, toiminnon nimi - index, ja parametritaulukko on seuraava:

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

Tämän oppitunnin tavoite - kirjoittaa luokka Router, joka palauttaa luokan Track olion. Loppu ei koske meitä vielä. Aloitetaan tämän luokan kirjoittaminen.

Käytännön tehtävät

Задание 1

Kopioi luokkani Track koodi ja sijoita se tiedostoon /core/Track.php.