Zhvillimi i router-it në MVC framework-un tuaj
Tani ju duhet të zhvilloni një router. Ai paraqet një klasë e cila do të marrë array-in e rrugëve, marrë URL-në e kërkuar, dhe të përcaktojë se cila prej rrugëve korrespondon me këtë url. Pas gjetjes së rrugës përkatëse klasa jonë duhet të marrë pjesët e URL-së, që korrespondojnë me parametrat e rrugës.
Le të kthejë si rezultat router-i ynë
një objekt të klasës Track, që përmban emrin
e kontrollerit i cili duhet të thirret për
këtë kërkesë, emrin e veprimit dhe parametrat nga URL-ja.
Le të ketë klasa jonë Track vetitë
controller, action dhe params,
të disponueshme vetëm për lexim:
<?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;
}
}
?>
Shembull
Për shembull, le të themi se në shiritin e adresave është shënuar
/test/1/2/. Le të themi se kemi një rrugë,
që i përgjigjet kësaj adrese:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Kjo do të thotë se emri i kontrollerit do të jetë test,
emri i veprimit - index, ndërsa array-i i parametrave
do të jetë si më poshtë:
<?php
['var1' => 1, 'var2' => 2]
?>
Qëllimi i këtij mësimi është të shkruhet klasa Router,
që kthen një objekt të klasës Track.
Pjesa tjetër nuk na prek akoma. Le të fillojmë
shkrimin e kësaj klase.
Detyra praktike
Kopjoni kodin e klasës time Track
dhe vendoseni atë në skedarin
/core/Track.php.