Trabalhando com rotas no seu próprio framework MVC

Você já sabe que no arquivo /project/config/routes.php são definidas as rotas, que especificam as correspondências entre a URL e os controladores com as ações. As rotas são objetos da classe Route. Vamos criar essa classe no arquivo /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;
    }
  }
?>

Como você pode ver, nesta classe as propriedades são somente para leitura, o que é alcançado usando métodos mágicos.

Dê uma olhada agora no arquivo de rotas. Você pode ver que há um array que é retornado via return. Isso significa que se incluirmos esse arquivo via require, o resultado da inclusão pode ser armazenado em uma variável e essa variável conterá nosso array:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // sua implementação de autoload
  });
  
  // Lemos o array do arquivo de rotas na variável:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

Copie o código da minha classe Route e coloque-o no arquivo /core/Route.php.

Задание 2

Obtenha o array com as rotas no arquivo index.php.