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