Pembangunan Penghala dalam Kerangka MVC Sendiri

Sekarang anda perlu membangunkan penghala. Ia merupakan kelas yang akan mengambil array laluan, mengambil URL yang diminta, dan menentukan laluan mana yang sepadan dengan URL tersebut. Selepas menemui laluan yang sepadan, kelas kami harus mendapatkan bahagian URL, yang sepadan dengan parameter laluan.

Biarkan hasilnya, penghala kami mengembalikan objek kelas Track, yang mengandungi nama pengawal yang harus dipanggil untuk permintaan ini, nama tindakan dan parameter dari URL.

Biarkan kelas Track kami mempunyai sifat controller, action dan params, hanya boleh diakses untuk dibaca:

/core/Track.php<?php
  namespace Core;
  
  class Track
  {
    private $controller;
    private $action;
    private $params;
    
    public function __construct($controller, $action, $params)
    {
      $this->controller = $controller;
      $this->action = $action;
      $this->params = $params;
    }
    
    public function __get($property)
    {
      return $this->$property;
    }
  }
?>

Contoh

Sebagai contoh, katakan dalam bar alamat dimasukkan /test/1/2/. Katakan kami mempunyai laluan, yang sepadan dengan alamat ini:

/project/config/routes.php<?php
  new Route('/test/:var1/:var2/', 'test', 'index');
?>

Ini bermakna nama pengawal akan menjadi test, nama tindakan - index, dan array parameter akan seperti berikut:

php<?php
  ['var1' => 1, 'var2' => 2]
?>

Matlamat pelajaran ini - menulis kelas Router, yang mengembalikan objek kelas Track. Selebihnya tidak menyentuh kami buat masa ini. Mari kita mulakan menulis kelas ini.

Tugas Praktikal

Задание 1

Salin kod kelas Track saya dan letakkannya dalam fail /core/Track.php.