⊗ppMVDFmRrIm 27 of 35 menu

Implémentation d'un routeur dans son propre framework MVC

Écrivons maintenant l'ébauche de la classe Router conformément à nos appels :

<?php namespace Core; class Router { private $routes; public function getTrack($routes, $uri) { // le code sera ici } } ?>

Dans la méthode getTrack, nous devons déterminer laquelle des routes correspond à cet $uri. Pour cela, il faut parcourir notre tableau de routes avec une boucle :

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { // vérification de $uri et $route } } } ?>

Si une route correspond à l'URI, nous devons obtenir les valeurs des paramètres de cette URI et retourner un objet de la classe Track :

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { if (vérification de la correspondance entre la route et l'URI) { $params = ; // il faut obtenir les paramètres de l'uri return new Track($route->controller, $route->action, $params); } } return new Track('error', 'notFound'); // si aucune route ne convient } } ?>

Copiez mon ébauche de la classe Router et placez-la dans le fichier /core/Router.php.

Implémentez la classe Router décrite, qui doit retourner comme résultat un objet de la classe Track. Si vous rencontrez des difficultés (ce qui est très probable), regardez le code source du framework que vous avez utilisé pour apprendre l'utilisation de MVC. Là, dans la classe Router, vous trouverez la partie manquante de l'implémentation et mes commentaires à son sujet.

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