Implementación de un enrutador en tu propio framework MVC
Ahora escribamos el esbozo de la clase Router
de acuerdo con nuestras llamadas:
<?php
namespace Core;
class Router
{
private $routes;
public function getTrack($routes, $uri)
{
// aquí estará el código
}
}
?>
En el método getTrack debemos determinar
cuál de las rutas corresponde a este $uri.
Para ello, necesitamos recorrer nuestro array de rutas
con un ciclo:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
// verificación de $uri y $route
}
}
}
?>
Si alguna ruta coincide con el URI, nosotros
debemos obtener de este URI los valores de los parámetros
de la ruta y devolver un objeto de la clase Track:
<?php
namespace Core;
class Router
{
public function getTrack($routes, $uri)
{
foreach ($routes as $route) {
if (verificación de coincidencia de la ruta y el URI) {
$params = ; // necesitamos obtener los parámetros del uri
return new Track($route->controller, $route->action, $params);
}
}
return new Track('error', 'notFound'); // si ninguna ruta coincide
}
}
?>
Copie mi esbozo de la clase Router
y colóquelo en el archivo /core/Router.php.
Implemente la clase descrita Router,
que devuelva como resultado un objeto de la clase
Track. Si experimenta dificultades
(lo cual es muy probable), consulte el código fuente
del framework con el que estudió el uso
de MVC. Allí, en la clase Router, encontrará
la parte faltante de la implementación y mis comentarios
sobre ella.