A router implementáció saját MVC keretrendszerben
Most írjuk meg a Router osztály vázlatát
a hívásainknak megfelelően:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// itt lesz a kód
}
}
?>
A getTrack metódusban meg kell határoznunk,
hogy a útvonalak közül melyik felel meg az adott $uri-nak.
Ehhez ciklussal kell bejárnunk a útvonalak tömbjét:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// $uri és $route ellenőrzése
}
}
}
?>
Ha valamelyik útvonal megfelel az URI-nak, akkor
ennék az URI-nak a paramétereit meg kell kapnunk
és vissza kell adnunk egy Track osztályú objektumot:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (útvonal és URI egyezésének ellenőrzése) {
$params = ; // meg kell kapni a paramétereket az uri-ból
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // ha egyetlen útvonal sem illeszkedik
}
}
?>
Másolja le a Router osztály vázlatomat
és helyezze el a /core/Router.php fájlban.
Valósítsa meg a leírt Router osztályt,
aminek eredménye egy Track osztályú objektum
visszaadása. Ha nehézségekbe ütközik
(ami nagyon valószínű), nézze meg annak a keretrendszernek
a forráskódját, amelyből az MVC használatát tanulmányozta.
Ott a Router osztályban megtalálja
a hiányzó implementációs részt és a hozzászólásaimat
hozzá.