Ўз 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 файлига жойланг.
Track класси объектини қайтарувчи Router
классини амалга оширинг. Агар қийинчиликка йўлиқсангиз
(эҳтимоли жуда юкори), MVC дан фойдаланишни ўрганган
фреймворкингизнинг боşланғич кодига қаранг. У ерда
Router классида амалга оширишнинг етишмайётган
қисми ва унинг изоҳларини топа оласиз.