Implementimi i router-it në MVC framework-un tuaj
Tani le të shkruajmë modelin e klasës Router
në përputhje me thirrjet tona:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// këtu do të jetë kodi
}
}
?>
Në metodën getTrack ne duhet të përcaktojmë,
cila prej rrugëve i përgjigjet këtij $uri.
Për këtë është e nevojshme të kalojmë nëpër array-in tonë me rrugë
me një cikël:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// kontrolli i $uri dhe $route
}
}
}
?>
Nëse ndonjë rrugë i përgjigjet URI-së, ne
duhet të marrim nga kjo URI vlerat e parametrave
të rrugës dhe të kthejmë një objekt të klasës Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (kontrolli i përputhjes së rrugës dhe URI-së) {
$params = ; // duhet marrë parametrat nga uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // nëse asnjë rrugë nuk përshtatet
}
}
?>
Kopjoni modelin tim të klasës Router
dhe vendoseni atë në skedarin /core/Router.php.
Implementoni klasën e përshkruar Router,
duke kthyer si rezultat një objekt të klasës
Track. Nëse do të përballeni me vështirësi
(gjë shumë e mundshme), shikoni kodin burimor
të framework-ut me të cilin keni studiuar përdorimin
e MVC. Aty në klasën Router do të gjeni
pjesën që mungon të implementimit dhe komentet e mia
për të.