⊗ppMVDFmRr 25 of 35 menu

Sviluppo di un router nel proprio framework MVC

Ora devi sviluppare un router. È una classe che prenderà l'array delle rotte, prenderà l'URL richiesto, e determinerà quale rotta corrisponde a quell'url. Dopo aver trovato la rotta corrispondente, la nostra classe deve ottenere le parti dell'URL che corrispondono ai parametri della rotta.

Come risultato, il nostro router restituirà un oggetto della classe Track, contenente il nome del controller che deve essere chiamato per questa richiesta, il nome dell'azione e i parametri dall'URL.

Lascia che la nostra classe Track abbia le proprietà controller, action e params, accessibili solo in lettura:

<?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; } } ?>

Esempio

Ad esempio, supponiamo che nella barra degli indirizzi sia digitato /test/1/2/. Supponiamo di avere una rotta, che corrisponde a questo indirizzo:

<?php new Route('/test/:var1/:var2/', 'test', 'index'); ?>

Ciò significa che il nome del controller sarà test, il nome dell'azione - index, e l'array dei parametri sarà il seguente:

<?php ['var1' => 1, 'var2' => 2] ?>

L'obiettivo di questa lezione è scrivere la classe Router, che restituisce un oggetto della classe Track. Il resto per ora non ci riguarda. Iniziamo a scrivere questa classe.

Compiti pratici

Copia il codice della mia classe Track e posizionalo nel file /core/Track.php.

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