Développement d'un routeur dans son framework MVC
Maintenant, vous devez développer un routeur. Il représente une classe qui va prendre un tableau de routes, prendre l'URL demandée, et déterminer quelle route correspond à cette URL. Après avoir trouvé la route correspondante, notre classe doit obtenir les parties de l'URL, correspondant aux paramètres de la route.
Que notre routeur retourne comme résultat
un objet de la classe Track, contenant le nom
du contrôleur qui doit être appelé pour
cette requête, le nom de l'action et les paramètres de l'URL.
Que notre classe Track ait les propriétés
controller, action et params,
accessibles uniquement en lecture :
<?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;
}
}
?>
Exemple
Par exemple, supposons que dans la barre d'adresse soit tapé
/test/1/2/. Supposons que nous ayons une route,
correspondant à cette adresse :
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Cela signifie que le nom du contrôleur sera test,
le nom de l'action - index, et le tableau des paramètres
sera le suivant :
<?php
['var1' => 1, 'var2' => 2]
?>
L'objectif de cette leçon - écrire la classe Router,
retournant un objet de la classe Track.
Le reste ne nous concerne pas pour l'instant. Commençons
à écrire cette classe.
Tâches pratiques
Copiez le code de ma classe Track
et placez-le dans le fichier
/core/Track.php.