Развој рутера у сопственом MVC оквиру
Сада треба да развијете рутер. Он представља класу која ће узети низ рутова, узети тражени 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.