MVC фреймворкда роутер яратиш
Энди сиз роутер ишлаб чиқишингиз керак. У шундай класс бўлиб, у роутлар массивини олади, сўралган URL ни олади ва қайси роутнинг мана шу URL га мос келишини аниқлайди. Мос келувчи роутни топгандан сўнг бизнинг классимиз URL нинг роут параметрларига мос келувчи қисмларини олиши керак.
Бизнинг роутеримиз ўзининг натижаси сифатида
Track класси объектини қайтарсин,
у шу сўров учун чаририлиши керак бўлган
контроллер номини, амал номини ва URL дан
олинган параметрларни ўз ичига олган.
Бизнинг Track классимиз фақат ўқиш
учун мос бўлган controller, action
ва params хоссаларига эга бўлсин:
<?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;
}
}
?>
Мисол
Мисол учун, манзил сатрига
/test/1/2/ киритилган бўлсин. Бизда шу
манзилга мос келувчи роут мавжуд бўлсин:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Бу дегани, контроллер номи test бўлади,
амал номи - index, параметрлар массиви
эса куйидагича бўлади:
<?php
['var1' => 1, 'var2' => 2]
?>
Бу дарснинг мақсади - Track класси
объектини қайтарадиган Router классини
ёзиш. Қолган нарсалар бизни шу пайтда
кизиктирмайди. Келинг, шу классни ёзишни
бошлаймиз.
Амалий вазифалар
Менинг Track классим кодин нусхалаб
/core/Track.php файлига жойланг.