Reitittimen toteutus omassa MVC-kehyksessä
Kirjoitetaan nyt luokan Router
luonnos vastaamaan käyttämämme kutsut:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// tähän tulee koodi
}
}
?>
Metodissa getTrack meidän on määritettävä,
mikä reiteistä vastaa annettua $uri:a.
Tätä varten meidän on käytävä läpi reittitaulukkomme
silmukalla:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// tarkista $uri ja $route
}
}
}
?>
Jos jokin reitti vastaa URI:ta, meidän
tulee saada tästä URI:sta reitin parametrien
arvot ja palauttaa luokan Track olio:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (reitin ja URI:n vastaavuuden tarkistus) {
$params = ; // parametrit on saatava uri:sta
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // jos mikään reitti ei sovi
}
}
?>
Kopioi luokan Router luonnos
ja sijoita se tiedostoon /core/Router.php.
Toteuta kuvattu luokka Router,
joka palauttaa tuloksenaan luokan
Track olion. Jos kohtaat vaikeuksia
(mikä on hyvin todennäköistä), katso lähdekoodia
MVC-kehyksestä, jota opit käyttämään.
Sieltä löydät luokasta Router
puuttuvan osan toteutuksesta ja kommenttini
siihen.