Naify\Router\RouteDispatcher クラス PHP 8.0+ 8.1 → readonly
ルートディスパッチャー — MVC コントローラディスパッチ
RouteFactory から生成され、リクエストを適切なコントローラ+アクションへ ディスパッチする。文字列ハンドラを正規化してクラス名とアクション名を取り出し、 RequestContext を渡してコントローラの handle() を呼び出す。
受け付けるハンドラ文字列:
IndexController@index(推奨)IndexController::index(既存互換)IndexController->indexAdmin/UserController::showAdmin.UserController::show
解釈ルール:
- 区切りの
::/@/->はすべてアクション指定として扱う - クラス側の
\\///.は namespace 区切りとして扱う - 実際のメソッドを直接呼ぶのではなく、
RequestContextHandlerInterface::handle()
に action 名を渡して処理を委ねる
使用例
// 通常は RouteFactory または Router の文字列ハンドラ遅延解決で生成される
$dispatcher = new RouteDispatcher('IndexController@index', 'App\\Controllers\\');
プロパティ
| 名前 | 型 | 説明 |
|---|---|---|
private
$handler
|
string |
ハンドラ文字列 |
private
$namespace
|
?string |
名前空間 |
メソッド
| メソッド | 説明 |
|---|---|
public
__construct(string $handler, ?string $namespace):
|
ディスパッチ対象を表す文字列ハンドラを初期化する |
public
dispatch(RequestContext $context): RequestContext
|
RequestContext を受け取り、コントローラへディスパッチする |