Delo z routi v lastnem MVC ogrodju

Že veste, da so v datoteki /project/config/routes.php nameščeni routi, ki označujejo ujemanja med URL in krmilniki z akcijami. Routi predstavljajo objekte razreda Route. Naredimo ta razred v datoteki /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;
    }
  }
?>

Kot vidite, so lastnosti v tem razredu namenjene samo za branje, kar dosežemo z uporabo magije.

Poglejte zdaj v datoteko z routi. Lahko vidite, da se tam nahaja matrika, ki se vrne preko return. To pomeni, da če takšno datoteko vključimo preko require, lahko rezultat vključitve zapišemo v spremenljivko in v tej spremenljivki bo naša matrika:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // vaša implementacija avtomatskega nalaganja
  });
  
  // Preberemo matriko iz datoteke z routi v spremenljivko:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

Kopirajte kodo mojega razreda Route in ga namestite v datoteko /core/Route.php.

Задание 2

Pridobite matriko z routi v datoteki index.php.