Работа з роўтамі ў сваім MVC фрэймворку
Вы ўжо ведаеце, што ў файле /project/config/routes.php
размяшчаюцца роўты, якія паказваюць адпаведнасці
паміж URL і кантролерамі з дзеяннямі. Роўты
ўяўляюць сабой аб'екты класа 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;
}
}
?>
Як вы бачыце, у гэтым класе ўласцівасці прызначаны толькі для чытання, што дасягаецца выкарыстаннем магіі.
Загляніце цяпер у файл з роўтамі. Вы можаце
ўбачыць, што там знаходзіцца масіў, які
вяртаецца праз return. Гэта значыць,
што калі падключыць такі файл праз require,
то вынік падключэння можна запісаць у
зменную і ў гэтай зменнай апынецца наш
масіў:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// ваша рэалізацыя аўтазагрузкі
});
// Прачытваем масіў з файла з роўтамі ў зменную:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Скапіруйце код майго класа Route
і размясціце яго ў файле
/core/Route.php.
Атрымайце масіў з роўтамі ў файле index.php.