Развој на рутер во вашиот MVC框架
Сега треба да развиете рутер. Тој претставува класа која ќе земе низа на рути, земе бараниот URL, и определува која од рутите одговара на дадениот url. По пронаоѓањето на соодветната рута нашата класа треба да ги добие деловите од URL, кои одговараат на параметрите на рутата.
Нека нашиот рутер враќа
објект од класата Track, која содржи име
на контролерот кој треба да се повика за
даденото барање, името на акцијата и параметрите од URL.
Нека нашата класа Track има својства
controller, action и params,
достапни само за читање:
<?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/. Нека имаме рута,
која одговара на оваа адреса:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Ова значи дека името на контролерот ќе биде test,
името на акцијата - index, а низата параметри
ќе биде следна:
<?php
['var1' => 1, 'var2' => 2]
?>
Целта на оваа лекција е да се напише класата Router,
која враќа објект од класата Track.
Останатото не нè засега за сега. Ајде да продолжиме
со пишување на оваа класа.
Практични задачи
Ископирајте го кодот на мојата класа Track
и поставете го во датотеката
/core/Track.php.