Marsruuteri arendamine oma MVC raamistikus
Nüüd peate arendama marsruuteri. See on klass, mis võtab marsruutide massiivi, võtab päritud URL-i, ja määrab, milline marsruut vastab antud URL-ile. Pärast vastava marsruudi leidmist peab meie klass saama URL-i osad, mis vastavad marsruudi parameetritele.
Olgu meie marsruuteri tulemuseks
klassi Track objekt, mis sisaldab
kontrolleri nime, mida peaks kutsuma
antud päringule, tegevuse nime ja URL-i parameetreid.
Olgu meie klassi Track omadusteks
controller, action ja params,
millele on ainult lugemisõigus:
<?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;
}
}
?>
Näide
Näiteks, oletame, et aadressiribale on sisestatud
/test/1/2/. Oletame, et meil on marsruut,
mis vastab sellele aadressile:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
See tähendab, et kontrolleri nimi on test,
tegevuse nimi - index, ja parameetrite massiiv
on järgmine:
<?php
['var1' => 1, 'var2' => 2]
?>
Selle õppetunni eesmärk on kirjutada klass Router,
mis tagastab klassi Track objekti.
Ülejäänu meid praegu ei puuduta. Hakkame kirjutama
seda klassi.
Praktilised ülesanded
Kopeerige minu klassi Track kood
ja asetage see faili
/core/Track.php.