独自のMVCフレームワークにおけるルーターの開発
次に、ルーターを開発する必要があります。 これは、ルートの配列とリクエストされたURLを受け取り、 どのルートがそのURLに対応するかを判断するクラスです。 対応するルートを見つけた後、このクラスはルートのパラメータに対応する URLの部分を取得する必要があります。
このルーターは、結果として、そのリクエストに対して呼び出されるべき
コントローラー名、アクション名、およびURLからのパラメータを含む
クラスTrackのオブジェクトを返すことにします。
クラスTrackは、読み取り専用のプロパティ
controller、action、paramsを持つことにします:
<?php
namespace Core;
class Track
{
private $controller;
private $action;
private $params;
public function __construct($controller, $action, $params)
{
$this->controller = $controller;
$this->action = $action;
$this->params = $params;
}
public function __get($property)
{
return $this->$property;
}
}
?>
例
例として、アドレスバーに/test/1/2/と入力されているとします。
このアドレスに対応するルートがあるとします:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
これは、コントローラー名がtest、
アクション名がindex、
パラメータの配列が以下になることを意味します:
<?php
['var1' => 1, 'var2' => 2]
?>
このレッスンの目標は、クラスTrackのオブジェクトを返す
クラスRouterを作成することです。
それ以外のことは、今のところ気にしません。
さあ、このクラスの作成に取り掛かりましょう。
実践的なタスク
私のクラスTrackのコードをコピーし、
ファイル/core/Track.phpに配置してください。