Implementering van 'n roeteaanwyser in jou eie MVC-raamwerk
Laat ons nou die basiese klas Router skryf
in ooreenstemming met ons oproepe:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// kode sal hier wees
}
}
?>
In die metode getTrack moet ons bepaal
watter roete ooreenstem met die gegewe $uri.
Om dit te doen, moet ons ons roetelys deurloop
met 'n lus:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// kontroleer $uri en $route
}
}
}
?>
As 'n roete ooreenstem met die URI, moet ons
die waardes van die roeteparameters van hierdie URI kry
en 'n objek van die klas Track terugstuur:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (kontroleer of roete en URI ooreenstem) {
$params = ; // moet parameters van uri kry
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // as geen roete pas nie
}
}
?>
Kopieer my basiese klas Router
en plaas dit in die lêer /core/Router.php.
Implementeer die beskryfde klas Router,
wat 'n objek van die klas
Track as sy resultaat teruggee. As jy sukkel
(wat baie waarskynlik is), kyk in die bronkode
van die raamwerk waarmee jy die gebruik van
MVC bestudeer het. Daar in die klas Router sal jy
die ontbrekende deel van die implementering en my kommentaar
daaroor vind.