როუტებთან მუშაობა საკუთარ 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.