独自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 クラスに、実装に不足している部分と それに対する私のコメントを見つけることができるでしょう。