自社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でルートの配列を取得してください。