⊗ppMVDFmRr 25 of 35 menu

Ontwikkeling van een router in je eigen MVC-framework

Nu moet je een router ontwikkelen. Het is een klasse die een array van routes neemt, de opgevraagde URL neemt, en bepaalt welke route overeenkomt met deze URL. Na het vinden van de bijbehorende route moet onze klasse de URL-onderdelen verkrijgen, die overeenkomen met de routeparameters.

Laat onze router als resultaat een object van de klasse Track teruggeven, bevat de naam van de controller die moet worden aangeroepen voor deze aanvraag, de naam van de actie en de parameters uit de URL.

Laat onze klasse Track eigenschappen hebben controller, action en params, alleen-lezen:

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

Voorbeeld

Stel dat in de adresbalk is ingevoerd /test/1/2/. Stel dat we een route hebben, die overeenkomt met dit adres:

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

Dit betekent dat de controllernaam test zal zijn, de actienaam - index, en de parameterarray zal als volgt zijn:

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

Het doel van deze les is om een klasse Router te schrijven, die een object van de klasse Track teruggeeft. De rest raakt ons nog niet. Laten we beginnen met het schrijven van deze klasse.

Praktische taken

Kopieer de code van mijn klasse Track en plaats het in het bestand /core/Track.php.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren