Өз MVC фреймворкуңуз үчүн роутерди ишке ашыруу
Эми биздин чакырууларыбызга ылайык
Router класстын үлгүсүн жазалы:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// бул жерде код болот
}
}
?>
getTrack методунун ичинде биз,
кайсы роут берилген $uriга туура келет,
аныктоо керек. Бул үчүн биздин роуттар массивин
цикл менен аралашыбыз керек:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// $uri жана $route текшерүү
}
}
}
?>
Эгерде кайсы бир роут URIга туура келсе, биз
ошол URIдан роуттун параметрлеринин маанилерин
алууга тийиш болобуз жана Track классынын
объектин кайтарууга тийиш болобуз:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (роуттун жана URIнын дал келишин текшерүү) {
$params = ; // uriден параметрлерди алуу керек
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // эгерде эч кайсы роут туура келбесе
}
}
?>
Router класстын менин үлгүмдү көчүрүп,
аны /core/Router.php файлына жайгаштырыңыз.
Силерге сүрөттөлгөн Router классты ишке ашырыңыз,
натыйжаңыз Track класстын объектин кайтарышы керек.
Эгерде кыйынчылыктарды башыңыздан өткөрсөңүз
(бул мүмкүн), анда сиз MVC колдонууну үйрөнгөн
фреймворктун баштапкы кодуна карап көрүңүз.
Ал жерден Router класстын ичинде ишке ашырылыштын
жетпеген бөлүгүн жана ага болгон менин комментарийлеримди
таба аласыз.