Implementering av ruter i sitt eget MVC-rammeverk
La oss nå skrive skjelettet for klassen Router
i henhold til våre kall:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// koden vil være her
}
}
?>
I metoden getTrack må vi avgjøre
hvilken av rutene som tilsvarer denne $uri.
For å gjøre dette må vi gå gjennom arrayet vårt med ruter
med en løkke:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// sjekk $uri og $route
}
}
}
?>
Hvis en rute tilsvarer URI,
må vi hente verdiene til rutens parametere
fra denne URI-en og returnere et objekt av klassen Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (sjekk av samsvar mellom rute og URI) {
$params = ; // må hente parametere fra uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // hvis ingen ruter passer
}
}
?>
Kopier mitt skjelett for klassen Router
og plasser den i filen /core/Router.php.
Implementer den beskrevne klassen Router,
som returnerer et objekt av klassen
Track som sitt resultat. Hvis du opplever vanskeligheter
(noe som er svært sannsynlig), kan du se i kildekoden
til rammeverket du studerte bruken av
MVC fra. Der i klassen Router finner du
den manglende delen av implementeringen og mine kommentarer
til den.