Utekelezaji wa Router katika Mfumo wa MVC wa Kuendeleza
Wacha sasa tuandae muundo wa classi Router
kulingana na miito yetu:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// kutakuwa na code hapa
}
}
?>
Katika mbinu getTrack tunapaswa kubainisha,
ni route ipi inafanana na $uri hii.
Ili kufanya hivyo, inahitajika kuzungusha safu yetu ya routes
kwa kitanzi:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// ukaguzi wa $uri na $route
}
}
}
?>
Ikiwa route fulani inafanana na URI, sisi
tunapaswa kupata thamani za vigezo vya route
kutoka kwa URI hii na kurudisha kitu cha classi Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (ukaguzi wa kufanana kwa route na URI) {
$params = ; // inahitajika kupata vigezo kutoka kwa uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // ikiwa hakuna route yoyote inayofaa
}
}
?>
Nakili muundo wangu wa classi Router
na uiweke kwenye faili /core/Router.php.
Tekeleza classi Router iliyoelezewa,
ikirudisha kitu cha classi
Track kama matokeo yake. Ikiwa utakosa
(kuna uwezekano mkubwa), angalia kwenye code asili
ya mfumo ambao ulitumia kujifunza matumizi
ya MVC. Huko katika classi Router utapata
sehemu inayokosekana ya utekelezaji na maoni yangu
kuhusu hilo.