Maršrutizatoriaus kūrimas savo MVC karkase
Dabar jums reikia sukurti maršrutizatorių. Jis yra klasė, kuri paims maršrutų masyvą, paims užklaustą URL, ir nustatys, kuris maršrutas atitinka duotąjį URL. Radęs atitinkantį maršrutą, mūsų klasė turi gauti URL dalis, atitinkančias maršruto parametrus.
Tegul mūsų maršrutizatorius grąžina
Track klasės objektą, kuriame yra
kontrolerio vardas, kuris turi būti iškviestas pagal
šią užklausą, veiksmo vardas ir parametrai iš URL.
Tegul mūsų Track klasė turi savybes
controller, action ir params,
prieinamus tik skaitymui:
<?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;
}
}
?>
Pavyzdys
Pavyzdžiui, tarkime adreso juostoje įvestas
/test/1/2/. Tarkime, mes turime maršrutą,
atitinkantį šį adresą:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Tai reiškia, kad kontrolerio vardas bus test,
veiksmo vardas - index, o parametrų masyvas
bus toks:
<?php
['var1' => 1, 'var2' => 2]
?>
Šios pamokos tikslas - parašyti Router klasę,
grąžinančią Track klasės objektą.
Visa kita mūsų kol kas neliečia. Pradėkime
rašyti šią klasę.
Praktinės užduotys
Nukopijuokite mano Track klasės kodą
ir patalpinkite jį faile
/core/Track.php.