Travailler avec les routes dans son propre framework MVC
Vous savez déjà que dans le fichier /project/config/routes.php
sont placées les routes, indiquant les correspondances
entre l'URL et les contrôleurs avec les actions. Les routes
sont des objets de la classe Route.
Créons cette classe dans le fichier
/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;
}
}
?>
Comme vous le voyez, dans cette classe, les propriétés sont destinées uniquement à la lecture, ce qui est réalisé en utilisant la magie.
Jetez maintenant un œil dans le fichier avec les routes. Vous pouvez
voir qu'il s'y trouve un tableau qui
est retourné via return. Cela signifie
que si on inclut un tel fichier via require,
le résultat de l'inclusion peut être enregistré dans une
variable et cette variable contiendra notre
tableau :
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// votre implémentation de l'autoload
});
// Nous lisons le tableau du fichier avec les routes dans la variable :
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Copiez le code de ma classe Route
et placez-le dans le fichier
/core/Route.php.
Obtenez le tableau avec les routes dans le fichier index.php.