자체 MVC 프레임워크에서 라우트 작업하기

이미 알고 계시듯이, 파일 /project/config/routes.php에는 URL과 컨트롤러 및 액션 간의 매핑을 지정하는 라우트가 배치됩니다. 라우트는 Route 클래스의 객체로 표현됩니다. 파일 /core/Route.php에 이 클래스를 만들어 보겠습니다:

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

보시다시피, 이 클래스의 속성들은 읽기 전용으로, 매직 메서드를 사용하여 구현되었습니다.

이제 라우트 파일을 살펴보세요. 여러분은 return을 통해 반환되는 배열이 거기에 있음을 확인할 수 있습니다. 이것은 require로 이러한 파일을 포함시킬 경우, 포함 결과를 변수에 기록할 수 있으며 그 변수 안에 우리의 배열이 담기게 됨을 의미합니다:

index.php<?php
  namespace Core;
  
  error_reporting(E_ALL);
  ini_set('display_errors', 'on');
  
  spl_autoload_register(function($class) {
    // 자동 로딩 구현
  });
  
  // 라우트 파일에서 배열을 읽어 변수에 저장:
  $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Задание 1

제 Route 클래스 코드를 복사하여 파일 /core/Route.php에 배치하세요.

Задание 2

파일 index.php에서 라우트 배열을 가져오세요.