Implementacija usmerjevalnika v lastnem MVC ogrodju
Zdaj napišimo osnovo razreda Router
v skladu z našimi klici:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// tukaj bo koda
}
}
?>
V metodi getTrack moramo določiti,
katera pot ustreza danemu $uri.
Za to moramo z zanko prebrati naš seznam s potmi:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// preverjanje $uri in $route
}
}
}
?>
Če neka pot ustreza URI-ju, moramo
iz tega URI-ja pridobiti vrednosti parametrov
poti in vrniti objekt razreda Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (preverjanje ujemanja poti in URI-ja) {
$params = ; // potrebno je dobiti parametre iz uri-ja
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // če nobena pot ne ustreza
}
}
?>
Kopirajte mojo osnovo razreda Router
in jo postavite v datoteko /core/Router.php.
Implementirajte opisani razred Router,
ki kot rezultat vrne objekt razreda
Track. Če boste imeli težave
(kar je zelo verjetno), poglejte v izvorno
kodo ogrodja, po katerem ste preučevali uporabo
MVC. Tam boste v razredu Router našli
manjkajoči del implementacije in moje komentarje
nanjo.