Maršrutizatoriaus įgyvendinimas savo MVC karkase
Dabar parašykime klasės Router ruošinį
pagal mūsų iškvietimus:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// čia bus kodas
}
}
?>
Metode getTrack mes turime nustatyti,
kuris iš maršrutų atitinka šį $uri.
Tam reikia pereiti mūsų masyvą su maršrutais
ciklu:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// $uri ir $route patikrinimas
}
}
}
?>
Jei kuris nors maršrutas atitinka URI, mes
turime gauti iš šio URI maršruto parametrų reikšmes
ir grąžinti klasės Track objektą:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (maršruto ir URI atitikimo patikrinimas) {
$params = ; // reikia gauti parametrus iš uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // jei nei vienas maršrutas netiks
}
}
?>
Nukopijuokite mano klasės Router ruošinį
ir patalpinkite jį faile /core/Router.php.
Įgyvendinkite aprašytą klasę Router,
kuri grąžina klasės Track objektą.
Jei patirsite sunkumų (kas gana tikėtina),
pažiūrėkite į pirminį karkaso kodą, pagal kurį
mokėtės MVC naudojimą. Ten klasėje Router
rasite trūkstamą įgyvendinimo dalį ir mano komentarus
jai.