Работа со рути во свој 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.