⊗ppMVDFmRr 25 of 35 menu

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.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser