Implementering af router i dit eget MVC framework
Lad os nu skrive skeletet for klassen Router
i overensstemmelse med vores kald:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// kode vil være her
}
}
?>
I metoden getTrack skal vi bestemme,
hvilken af ruterne der svarer til den givne $uri.
For at gøre dette skal vi gennemgå vores array med ruter
i en løkke:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// tjek $uri og $route
}
}
}
?>
Hvis en rute svarer til URI, skal vi
få værdierne for ruteparametrene
fra denne URI og returnere et objekt af klassen Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (tjek for overensstemmelse mellem rute og URI) {
$params = ; // skal hente parametre fra uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // hvis ingen ruter passer
}
}
?>
Kopier mit skelet for klassen Router
og placer den i filen /core/Router.php.
Implementer den beskrevne klasse Router,
som returnerer et objekt af klassen
Track som sit resultat. Hvis du oplever vanskeligheder
(hvilket er meget sandsynligt), så kig i kildekoden
til frameworket, du studerede brugen af
MVC efter. Der i klassen Router vil du finde
den manglende del af implementeringen og mine kommentarer
til den.