Marsruutide töötamine oma MVC raamistikus

Te juba teate, et failis /project/config/routes.php paiknevad marsruudid, mis näitavad vastavusi URL-i ja kontrollerite ning toimingute vahel. Marsruudid esindavad klassi Route objekte. Teeme selle klassi faili /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;
    }
  }
?>

Nagu näete, on selle klassi omadused mõeldud ainult lugemiseks, mis saavutatakse magic meetodite kasutamisega.

Heitke nüüd pilk failile marsruutidega. Te võite näha, et seal asub massiiv, mis tagastatakse läbi return. See tähendab, et kui ühendada selline fail läbi require, siis ühendamise tulemuse saab kirjutada muutujasse ja selles muutujas on meie massiiv:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // teie automaatlaadimise implementatsioon
  });
  
  // Loeme massiivi failist marsruutidega muutujasse:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

Kopeerige minu klassi Route kood ja asetage see faili /core/Route.php.

Задание 2

Hankige massiiv marsruutidega failis index.php.