Имплементација на рутер во вашата 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 ќе најдете
што недостасува од имплементацијата и моите коментари
за неа.