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:
<?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:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
To pomeni, da bo ime krmilnika test,
ime akcije - index, matrika parametrov
pa bo naslednja:
<?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
Kopirajte kodo mojega razreda Track
in ga postavite v datoteko
/core/Track.php.