Распрацоўка роўтара ў сваім 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.