O'z MVC freymvorkida marshrutlar bilan ishlash
Siz allaqachon bilasizki, /project/config/routes.php faylida
URL va kontrollerlar bilan amallar o'rtasidagi moslikni ko'rsatadigan
marshrutlar joylashgan. Marshrutlar
Route sinfining ob'ektlari sifatida taqdim etiladi.
Keling, ushbu sinfni
/core/Route.php faylida yaratamiz:
<?php
namespace Core;
class Route
{
private $path;
private $controller;
private $action;
public function __construct($path, $controller, $action)
{
$this->path = $path;
$this->controller = $controller;
$this->action = $action;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Ko'rib turganingizdek, ushbu sinfda xususiyatlar faqat o'qish uchun mo'ljallangan, buni sehrdan foydalanish orqali erishiladi.
Endi marshrutlar fayliga nazar tashlang. Siz
ko'rishingiz mumkin, u erda return orqali qaytariladigan
massiv joylashgan. Bu shuni anglatadiki,
agar bunday faylni require orqali ulasak,
ulash natijasini o'zgaruvchiga yozish mumkin va
ushbu o'zgaruvchida bizning massivimiz paydo bo'ladi:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// sizning avtoyuklash realizatsiyangiz
});
// Marshrutlar faylidan massivni o'qiymiz va o'zgaruvchiga yuklaymiz:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Mening Route sinfim kodini nusxalang
va uni /core/Route.php faylida joylashtiring.
index.php faylida marshrutlar massivini oling.