Útválasztó fejlesztése saját MVC keretrendszerben
Most egy útválasztót kell fejlesztenie. Ez egy olyan osztály, amely veszi az útvonalak tömbjét, veszi a kért URL-t, és meghatározza, hogy melyik útvonal felel meg az adott URL-nek. Miután megtalálta a megfelelő útvonalat, osztályunknak meg kell kapnia az URL azon részeit, amelyek az útvonal paramétereinek felelnek meg.
Legyen az útválasztó eredménye egy
Track osztályú objektum, amely tartalmazza a
vezérlő nevét, amelyet meg kell hívni az
adott kéréshez, a művelet nevét és az URL-ből származó paramétereket.
Legyen a Track osztályunknak a következő tulajdonságai:
controller, action és params,
amelyek csak olvashatók:
<?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;
}
}
?>
Példa
Példaként tegyük fel, hogy a címsorba beírt
/test/1/2/. Tegyük fel, hogy van egy útvonalunk,
ami megfelel ennek a címnek:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Ez azt jelenti, hogy a vezérlő neve test lesz,
a művelet neve - index, a paraméterek tömbje
pedig a következő:
<?php
['var1' => 1, 'var2' => 2]
?>
Ennek a leckének a célja, hogy írjon egy Router osztályt,
amely visszaad egy Track osztályú objektumot.
A többi egyelőre nem tartozik hozzánk. Kezdjük el
írni ezt az osztályt.
Gyakorlati feladatok
Másolja le a Track osztályom kódját
és helyezze el a
/core/Track.php fájlban.