การนำทางเส้นทางในเฟรมเวิร์ก MVC ของคุณ

ตอนนี้เรามาเขียนโครงร่างคลาส Router ให้สอดคล้องกับการเรียกใช้งานของเรา:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // รหัสจะอยู่ที่นี่
    }
  }
?>

ในเมธอด getTrack เราต้องพิจารณาว่า เส้นทางใดตรงกับ $uri ที่กำหนด ในการทำเช่นนี้ จำเป็นต้องวนลูปผ่านอาร์เรย์เส้นทางของเรา:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // ตรวจสอบ $uri และ $route
      }
    }
  }
?>

หากเส้นทางใดตรงกับ URI เราควร ได้ค่าพารามิเตอร์ของเส้นทางจาก URI นั้น และส่งคืนออบเจ็กต์ของคลาส Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (ตรวจสอบความสอดคล้องของเส้นทางและ URI) {
          $params = ; // ต้องได้พารามิเตอร์จาก uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // หากไม่มีเส้นทางใดตรง
    }
  }
?>
Задание 1

คัดลอกโครงร่างคลาส Router ของฉัน และวางไว้ในไฟล์ /core/Router.php

Задание 2

ดำเนินการสร้างคลาส Router ตามที่อธิบายไว้ โดยให้ผลลัพธ์ส่งคืนออบเจ็กต์ของคลาส Track หากคุณประสบปัญหา (ซึ่งเป็นไปได้มาก) คุณสามารถดูในซอร์สโค้ด ของเฟรมเวิร์กที่คุณใช้ศึกษาการทำงานของ MVC ได้ ในคลาส Router นั้น คุณจะพบ ส่วนของการดำเนินการที่ขาดหายไปและคำอธิบายของฉัน เกี่ยวกับมัน