나만의 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

Track 클래스의 객체를 반환하는 Router 클래스를 구현하세요. 어려움을 겪는다면(매우 가능성 높음), MVC 사용법을 배울 때 공부한 프레임워크의 소스 코드를 참고하세요. 거기 있는 Router 클래스에서 누락된 구현 부분과 그에 대한 제 설명을 찾을 수 있을 것입니다.