Implementacija rutera u sopstvenom MVC frejmvorku
Hajde sada da napišemo šablon klase Router
u skladu sa našim pozivima:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// ovde će biti kod
}
}
?>
U metodu getTrack moramo da odredimo,
koja ruta odgovara datom $uri.
Za to je potrebno da prođemo kroz naš niz sa rutama
petljom:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// provera $uri i $route
}
}
}
?>
Ako neka ruta odgovara URI-ju, mi
treba da dobijemo iz tog URI-ja vrednosti parametara
rute i da vratimo objekat klase Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (provera podudaranja rute i URI-ja) {
$params = ; // potrebno je dobiti parametre iz uri-ja
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // ako nijedna ruta ne odgovara
}
}
?>
Kopirajte moj šablon klase Router
i postavite ga u fajl /core/Router.php.
Implementirajte opisani klas Router,
da vraća objekat klase
Track kao rezultat. Ako naiđete na poteškoće
(što je vrlo verovatno), pogledajte u izvorni
kod frejmvorka po kome ste učili korišćenje
MVC-a. Tamo ćete u klasi Router naći
nedostajući deo implementacije i moje komentare
uz nju.