⊗ppMVDFmRrIm 27 of 35 menu

Implementazione del router nel proprio framework MVC

Ora scriviamo la bozza della classe Router in conformità con le nostre chiamate:

<?php namespace Core; class Router { private $routes; public function getTrack($routes, $uri) { // qui ci sarà il codice } } ?>

Nel metodo getTrack dobbiamo determinare quale delle rotte corrisponde a questo $uri. Per fare questo, dobbiamo scorrere il nostro array di rotte con un ciclo:

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { // verifica $uri e $route } } } ?>

Se una rotta corrisponde all'URI, noi dobbiamo ottenere da questo URI i valori dei parametri della rotta e restituire un oggetto della classe Track:

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { if (verifica corrispondenza rotta e URI) { $params = ; // bisogna ottenere i parametri dall'uri return new Track($route->controller, $route->action, $params); } } return new Track('error', 'notFound'); // se nessuna rotta corrisponde } } ?>

Copiate la mia bozza della classe Router e posizionatela nel file /core/Router.php.

Implementate la classe Router come descritto, che restituisca come risultato un oggetto della classe Track. Se incontrate difficoltà (cosa piuttosto probabile), guardate il codice sorgente del framework con cui avete studiato l'utilizzo di MVC. Lì, nella classe Router, troverete la parte mancante dell'implementazione e i miei commenti relativi.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta