Arbete med routes i ditt eget MVC-ramverk

Du vet redan att i filen /project/config/routes.php placeras routes som anger överensstämmelse mellan URL och kontrollerare med åtgärder. Routes är objekt av klassen Route. Låt oss skapa den här klassen i filen /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;
    }
  }
?>

Som du kan se är egenskaperna i denna klass avsedda endast för läsning, vilket uppnås genom användning av magi.

Titta nu i filen med routes. Du kan se att det finns en array där som returneras via return. Det betyder att om en sådan fil inkluderas via require, så kan resultatet av inkluderingen skrivas till en variabel och i denna variabel kommer vår array att finnas:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // din implementation av autoload
  });
  
  // Läser arrayen från filen med routes in i en variabel:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

Kopiera koden för min klass Route och placera den i filen /core/Route.php.

Задание 2

Skaffa arrayen med routes i filen index.php.