Өз MVC фреймворкіңіздегі router әзірлеу
Енді сізге router әзірлеу керек. Ол роуттар массивін алатын, сұралған URL-ді алатын және қай роуттың берілген URL-ге сәйкес келетіндігін анықтайтын класс болып табылады. Сәйкес роут табылғаннан кейін біздің класымыз роут параметрлеріне сәйкес келетін URL бөліктерін алуы керек.
Біздің router нәтиже ретінде осы сұраныс үшін
шақырылуы тиіс басқарушы атауын, әрекет атауын
және URL-дегі параметрлерді қамтитын Track
класының нысанын қайтарсын.
Біздің 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]
?>
Бұл сабақтың мақсаты - Track класының нысанын
қайтаратын Router класын жазу.
Қалғаны бізді әлі қамтымайды. Осы класты жазуға кірісейік.
Практикалық тапсырмалар
Менің Track класымның кодтың көшірмесін жасап,
оны /core/Track.php файлына орналастырыңыз.