Maršrutizatora implementācija savā MVC ietvarā
Tagad izveidosim klases Router
sagatavi saskaņā ar mūsu izsaukumiem:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// šeit būs kods
}
}
?>
Metodē getTrack mums jānosaka,
kurš no maršrutiem atbilst dotajam $uri.
Lai to izdarītu, mums ir jāiziet cauri mūsu masīvam ar maršrutiem
cikla:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// pārbauda $uri un $route
}
}
}
?>
Ja kāds maršruts atbilst URI, mums
jāiegūst no šī URI maršruta parametru vērtības
un jāatgriež klases Track objekts:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (maršruta un URI atbilstības pārbaude) {
$params = ; // jāiegūst parametri no uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // ja neviens maršruts nederēs
}
}
?>
Nokopējiet manu klases Router sagatavi
un ievietojiet to failā /core/Router.php.
Implementējiet aprakstīto klasi Router,
kas atgriež klases Track objektu.
Ja jums radīsies grūtības
(kas ir ļoti iespējams), ieskatieties avota kodā
ietvara, ar kuru jūs mācījāties MVC izmantošanu.
Tur klasē Router jūs atradīsiet
trūkstošo implementācijas daļu un manus komentārus
par to.