O'z MVC freymvorkingiz uchun router yaratish
Endi siz router yaratishingiz kerak. U shunday klass bo'lib, u route'lar massivini oladi, so'ralgan URLni oladi, va qaysi route ushbu urlga mos kelishini aniqlaydi. Mos keluvchi route topilgandan so'ng, bizning klassimiz route parametrlariga mos keluvchi URL qismlarini olishi kerak.
Bizning router natija sifatida
Track klassining ob'ektini qaytarsin,
unda so'rov uchun chaqiriladigan
controller nomi, action nomi va URLdagi parametrlar bo'lsin.
Bizning Track klassimizda
controller, action va params
xususiyatlari bo'lsin, faqat o'qish uchun:
<?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;
}
}
?>
Misol
Misol uchun, manzil satrida
/test/1/2/ kiriltirilgan bo'lsin. Bizda ushbu manzilga mos keluvchi
route bo'lsin:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Bu shuni anglatadiki, controller nomi test bo'ladi,
action nomi - index, va parametrlar massivi
quyidagicha bo'ladi:
<?php
['var1' => 1, 'var2' => 2]
?>
Ushbu darsning maqsadi - Track klassining ob'ektini qaytaradigan
Router klassini yozish.
Qolganlari hozircha bizni qiziqtirmaydi. Keling, ushbu klassni
yozishni boshlaymiz.
Amaliy vazifalar
Mening Track klassim kodini nusxalang
va uni faylda joylashtiring
/core/Track.php.