Ўз MVC фреймворкингизда маршрутлар билан ишлаш
Сиз биласизки, /project/config/routes.php файлида
URL ва контроллерлар ҳамда амаллар ўртасидаги
мосликни кўрсатадиган маршрутлар joylashgan. Маршрутлар
Route синфининг объектлари ҳисобланади.
Келинг, шу синфни /core/Route.php файлида яратайлик:
<?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;
}
}
?>
Кўриб turganingizdek, бу синфдаги хусусиятлар фақат ўқиш учун мўлжалланган, бу эса магиядан foydalanish орқали амалга oshiriladi.
Энди маршрутлар файлини tekshiring. Сиз
кўришингиз мумкинки, у ерда return орқали
qaytariladган массив joylashgan. Бу демакдики,
агар бундай файлни require орқали ulansak,
у holda улаш натижасини ўзгарувчига yozishimiz
мумкин ва шу ўзгарувчида бизнинг массивимиз
joylashadi:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// сизнинг автозагрузка амалга oshirүшингиз
});
// Маршрутлар файлидан массивни ўзгарувчига ўқиамиз:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Менинг Route синфим кодин нусхалаб олиб,
уни /core/Route.php файлида joylang.
index.php файлида маршрутлар билан массивни oling.