O'z MVC freymvorkida marshrutlar bilan ishlash

Siz allaqachon bilasizki, /project/config/routes.php faylida URL va kontrollerlar bilan amallar o'rtasidagi moslikni ko'rsatadigan marshrutlar joylashgan. Marshrutlar Route sinfining ob'ektlari sifatida taqdim etiladi. Keling, ushbu sinfni /core/Route.php faylida yaratamiz:

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

Ko'rib turganingizdek, ushbu sinfda xususiyatlar faqat o'qish uchun mo'ljallangan, buni sehrdan foydalanish orqali erishiladi.

Endi marshrutlar fayliga nazar tashlang. Siz ko'rishingiz mumkin, u erda return orqali qaytariladigan massiv joylashgan. Bu shuni anglatadiki, agar bunday faylni require orqali ulasak, ulash natijasini o'zgaruvchiga yozish mumkin va ushbu o'zgaruvchida bizning massivimiz paydo bo'ladi:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // sizning avtoyuklash realizatsiyangiz
  });
  
  // Marshrutlar faylidan massivni o'qiymiz va o'zgaruvchiga yuklaymiz:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

Mening Route sinfim kodini nusxalang va uni /core/Route.php faylida joylashtiring.

Задание 2

index.php faylida marshrutlar massivini oling.