Работа з роўтамі ў сваім MVC фрэймворку

Вы ўжо ведаеце, што ў файле /project/config/routes.php размяшчаюцца роўты, якія паказваюць адпаведнасці паміж URL і кантролерамі з дзеяннямі. Роўты ўяўляюць сабой аб'екты класа Route. Давайце зробім гэты клас у файле /core/Route.php:

/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, то вынік падключэння можна запісаць у зменную і ў гэтай зменнай апынецца наш масіў:

index.php<?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';
?>
Задание 1

Скапіруйце код майго класа Route і размясціце яго ў файле /core/Route.php.

Задание 2

Атрымайце масіў з роўтамі ў файле index.php.