Tworzenie routera we własnym frameworku MVC
Teraz musisz opracować router. Reprezentuje on klasę, która będzie pobierać tablicę tras, pobierać żądany URL, i określać, która z tras odpowiada danemu URL. Po znalezieniu odpowiedniej trasy nasza klasa powinna uzyskać części URL, odpowiadające parametrom trasy.
Niech nasz router zwraca jako wynik
obiekt klasy Track, zawierający nazwę
kontrolera, który ma zostać wywołany dla
danego żądania, nazwę akcji oraz parametry z URL.
Niech nasza klasa Track ma właściwości
controller, action i params,
dostępne tylko do odczytu:
<?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;
}
}
?>
Przykład
Dla przykładu, załóżmy, że w pasku adresu wpisano
/test/1/2/. Załóżmy, że mamy trasę,
odpowiadającą temu adresowi:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Oznacza to, że nazwa kontrolera będzie test,
nazwa akcji - index, a tablica parametrów
będzie następująca:
<?php
['var1' => 1, 'var2' => 2]
?>
Cel tej lekcji - napisać klasę Router,
zwracającą obiekt klasy Track.
Reszta nas na razie nie dotyczy. Zabierzmy się
za pisanie tej klasy.
Zadania praktyczne
Skopiuj kod mojej klasy Track
i umieść go w pliku
/core/Track.php.