⊗ppMVDFmRr 25 of 35 menu

Dezvoltarea unui router în propriul framework MVC

Acum trebuie să dezvoltați un router. Acesta este o clasă care va lua un array de rute, va lua URL-ul solicitat, și va determina care rută corespunde acestui URL. După găsirea rutei corespunzătoare, clasa noastră trebuie să obțină părțile URL-ului, corespunzătoare parametrilor rutei.

Fie ca router-ul nostru să returneze un obiect al clasei Track, care conține numele controlerului care trebuie apelat pentru această solicitare, numele acțiunii și parametrii din URL.

Fie ca clasa noastră Track să aibă proprietățile controller, action și params, accesibile doar pentru citire:

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

Exemplu

De exemplu, să presupunem că în bara de adrese a fost introdus /test/1/2/. Să presupunem că avem o rută, corespunzătoare acestei adrese:

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

Aceasta înseamnă că numele controlerului va fi test, numele acțiunii - index, iar array-ul de parametri va fi următorul:

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

Scopul acestei lecții este de a scrie clasa Router, care returnează un obiect al clasei Track. Restul nu ne preocupă momentan. Să începem scrierea acestei clase.

Sarcini practice

Copiați codul clasei mele Track și plasați-l în fișierul /core/Track.php.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge