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:
<?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:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Tämä tarkoittaa, että ohjaimen nimi on test,
toiminnon nimi - index, ja parametritaulukko
on seuraava:
<?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
Kopioi luokkani Track koodi
ja sijoita se tiedostoon
/core/Track.php.