Vývoj routeru vo vlastnom MVC frameworku
Teraz potrebujete vyvinúť router. Predstavuje triedu, ktorá bude brať pole rout, brať požadovanú URL, a určovať, ktorá z rout zodpovedá danej URL. Po nájdení zodpovedajúcej routy musí naša trieda získať časti URL, zodpovedajúce parametrom routy.
Nech náš router vráti ako výsledok
objekt triedy Track, obsahujúci názov
kontroléra, ktorý má byť zavolaný pre
danú požiadavku, názov akcie a parametre z URL.
Nech naša trieda Track má vlastnosti
controller, action a params,
prístupné len na čítanie:
<?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;
}
}
?>
Príklad
Napríklad, nech je v adresnom riadku zadaná
/test/1/2/. Nech máme routu,
zodpovedajúcu tejto adrese:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
To znamená, že názov kontroléra bude test,
názov akcie - index, a pole parametrov
bude nasledovné:
<?php
['var1' => 1, 'var2' => 2]
?>
Cieľom tejto lekcie je napísať triedu Router,
vracejúcu objekt triedy Track.
Ostatné sa nás zatiaľ netýka. Poďme sa pustiť
do písania tejto triedy.
Praktické úlohy
Skopírujte kód mojej triedy Track
a umiestnite ho do súboru
/core/Track.php.