Udvikling af router i dit eget MVC framework
Nu skal du udvikle en router. Den repræsenterer en klasse, som vil tage et array af ruter, tage den anmodede URL, og afgøre hvilken af ruterne der svarer til denne URL. Efter at have fundet den tilsvarende rute, skal vores klasse hente de dele af URL'en, der svarer til rute parametrene.
Lad vores router returnere
et objekt af klassen Track, som indeholder navnet på
controlleren, der skal kaldes for
denne anmodning, handlingens navn og parametre fra URL'en.
Lad vores klasse Track have egenskaberne
controller, action og params,
der kun er læselige:
<?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;
}
}
?>
Eksempel
Som et eksempel, lad os sige at der i adresselinjen er indtastet
/test/1/2/. Lad os sige at vi har en rute,
der svarer til denne adresse:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Det betyder, at controllerens navn vil være test,
handlingens navn - index, og parameter arrayet
vil være følgende:
<?php
['var1' => 1, 'var2' => 2]
?>
Målet med denne lektion er at skrive klassen Router,
som returnerer et objekt af klassen Track.
Resten berører os ikke endnu. Lad os gå i gang
med at skrive denne klasse.
Praktiske opgaver
Kopier koden fra min klasse Track
og placer den i filen
/core/Track.php.