Desarrollo de un enrutador en tu propio framework MVC
Ahora necesitas desarrollar un enrutador. Este representa una clase que tomará un array de rutas, tomará la URL solicitada, y determinará cuál de las rutas corresponde a dicha URL. Después de encontrar la ruta correspondiente, nuestra clase debe obtener las partes de la URL que corresponden a los parámetros de la ruta.
Como resultado, nuestro enrutador debe devolver
un objeto de la clase Track, que contiene el nombre
del controlador que debe ser invocado para
esa solicitud, el nombre de la acción y los parámetros de la URL.
Deja que nuestra clase Track tenga las propiedades
controller, action y params,
accesibles solo para lectura:
<?php
namespace Core;
class Track
{
private $controller;
private $action;
private $params;
public function __construct($controller, $action, $params)
{
$this->controller = $controller;
$this->action = $action;
$this->params = $params;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Ejemplo
Por ejemplo, supongamos que en la barra de direcciones se ha ingresado
/test/1/2/. Supongamos que tenemos una ruta,
que corresponde a esta dirección:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Esto significa que el nombre del controlador será test,
el nombre de la acción - index, y el array de parámetros
será el siguiente:
<?php
['var1' => 1, 'var2' => 2]
?>
El objetivo de esta lección es escribir la clase Router,
que devuelve un objeto de la clase Track.
El resto no nos concierne por ahora. Empecemos
a escribir esta clase.
Tareas prácticas
Copia el código de mi clase Track
y colócalo en el archivo
/core/Track.php.