Razvoj ruteru u sopstvenom MVC frejmvorku
Sada treba da razvijete ruter. On predstavlja klasu koja će uzeti niz ruta, uzeti traženi URL, i odrediti koja od ruta odgovara datom URL-u. Nakon pronalaženja odgovarajuće rute, naša klasa treba da dobije delove URL-a koji odgovaraju parametrima rute.
Neka naš ruter kao rezultat vraća
objekat klase Track, koji sadrži ime
kontrolera koji treba biti pozvan za
ovaj zahtev, ime akcije i parametre iz URL-a.
Neka naša klasa Track ima svojstva
controller, action i params,
dostupna samo za čitanje:
<?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;
}
}
?>
Primer
Na primer, neka je u adresnoj traci uneto
/test/1/2/. Pretpostavimo da imamo rutu,
koja odgovara ovoj adresi:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Ovo znači da će ime kontrolera biti test,
ime akcije - index, a niz parametara
biće sledeći:
<?php
['var1' => 1, 'var2' => 2]
?>
Cilj ove lekcije je napisati klasu Router,
koja vraća objekat klase Track.
Ostalo nas za sada ne tiče. Hajde da počnemo
pisanje ove klase.
Praktični zadaci
Kopirajte kod moje klase Track
i postavite ga u fajl
/core/Track.php.