Implementasi Router dalam Framework MVC Sendiri

Sekarang mari kita tulis kerangka kelas Router sesuai dengan panggilan kita:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // kode akan ada di sini
    }
  }
?>

Dalam metode getTrack kita harus menentukan rute mana yang sesuai dengan $uri ini. Untuk melakukan ini, kita perlu mengulang array rute kita dengan loop:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // memeriksa $uri dan $route
      }
    }
  }
?>

Jika suatu rute sesuai dengan URI, kita harus mendapatkan nilai parameter dari URI ini dan mengembalikan objek kelas Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (pemeriksaan kecocokan rute dan URI) {
          $params = ; // perlu mendapatkan parameter dari uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // jika tidak ada rute yang cocok
    }
  }
?>
Задание 1

Salin kerangka kelas Router saya dan letakkan di file /core/Router.php.

Задание 2

Implementasikan kelas Router yang dijelaskan, yang mengembalikan objek kelas Track sebagai hasilnya. Jika Anda mengalami kesulitan (sangat mungkin), lihat kode sumber framework yang Anda pelajari untuk penggunaan MVC. Di sana, dalam kelas Router Anda akan menemukan bagian implementasi yang hilang dan komentar saya tentangnya.