Trabajo con rutas en tu propio framework MVC
Ya sabes que en el archivo /project/config/routes.php
se colocan las rutas, que indican las correspondencias
entre la URL y los controladores con las acciones. Las rutas
son objetos de la clase Route.
Hagamos esta clase en el archivo
/core/Route.php:
<?php
namespace Core;
class Route
{
private $path;
private $controller;
private $action;
public function __construct($path, $controller, $action)
{
$this->path = $path;
$this->controller = $controller;
$this->action = $action;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Como puedes ver, en esta clase las propiedades están destinadas solo para lectura, lo que se logra mediante el uso de métodos mágicos.
Echa un vistazo ahora al archivo con las rutas. Puedes
ver que allí hay un array que
se retorna mediante return.
Esto significa que si incluyes dicho archivo mediante require,
el resultado de la inclusión se puede guardar en una
variable y en esta variable estará nuestro
array:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// tu implementación de autocarga
});
// Leemos el array del archivo con rutas en la variable:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Copia el código de mi clase Route
y colócalo en el archivo
/core/Route.php.
Obtén el array con las rutas en el archivo index.php.