⊗ppMVDFmRr 25 of 35 menu

Utveckling av en router i ett eget MVC-ramverk

Nu behöver du utveckla en router. Den representerar en klass som kommer att ta en array av rutter, ta den efterfrågade URL:en, och avgöra vilken av rutterna som motsvarar denna URL. Efter att ha hittat den motsvarande ruten bör vår klass erhålla delar av URL:en, som motsvarar rutens parametrar.

Låt vår router returnera ett objekt av klassen Track som ett resultat, innehållande namnet på kontrollern som ska anropas för denna förfrågan, namnet på åtgärden och parametrarna från URL:en.

Låt vår klass Track ha egenskaperna controller, action och params, som endast är läsbara:

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

Exempel

Som exempel, låt oss säga att följande är inmatat i adressfältet /test/1/2/. Låt oss säga att vi har en rutt, som motsvarar denna adress:

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

Det betyder att kontrollerns namn kommer att vara test, åtgärdens namn - index, och parameterarrayen kommer att vara följande:

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

Målet med denna lektion är att skriva klassen Router, som returnerar ett objekt av klassen Track. Resten berör oss inte för tillfället. Låt oss börja skriva denna klass.

Praktiska uppgifter

Kopiera koden för min klass Track och placera den i filen /core/Track.php.

daitnlswuz