Өз MVC фреймворкуңузда router иштеп чыгуу
Эми сизге роутер иштеп чыгуу керек. Ал классты түзөт, ал маршруттардын массивин алып, суралган 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 файлына жайгаштырыңыз.