Öz MVC freymvorkymyzda routlar bilen işlemek

Siz eýýäm bilýäňiz, /project/config/routes.php faýlynda URL bilen kontrollerler we hereketler arasyndaky gabat-geligi görkezýän routlar ýerleşdirilýär. Routlar Route klasynyň obyektleri hökmünde görkezilýär. Geliň bu klassy /core/Route.php faýlynda düzeliň:

/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;
    }
  }
?>

Görşüňiz ýaly, bu klassyň aýratynlyklary diňe okamak üçin niýetlenendir, bu bolsa magiýany ulanmak bilen ýerine ýetirilýär.

Indi routlar bilen faýla serediň. Siz görüp bilersiňiz, ol ýerde return arkaly yzygiderliligi gaýtarylan massiw bar. Bu şuny aňladýar, eger şeýle faýly require arkaly birikdirsek, onda birikdirmäniň netijesini üýtgeýjide ýazyp bileris we bu üýtgeýjide biziň massiwimiz ýerleşer:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // siziň awtomaýik ýüklemek realizasiýaňyz
  });
  
  // Faýldan routlar bilen massiwy okap, üýtgeýjige alýarys:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

Route klasymyň kodyny göçürip, onu /core/Route.php faýlyna ýerleşdiriň.

Задание 2

index.php faýlynda routlar bilen massiwy alyň.