上文講解關於如何對映 Action,本文講解如何對映 Controller。
0x00 實現
首先,在你的 Module 裡,定義一個 $controllerRedirectMap
變數。
public $controllerRedirectMap = [];
重寫 createControllerByID
方法。
public function createControllerByID($id)
{
if(isset($this->controllerRedirectMap[$id])) {
$id = $this->controllerRedirectMap[$id];
}
return parent::createControllerByID($id);
}
0x01 用法
public $controllerRedirectMap = [
'foo' => 'bar' // 訪問 `module/foo/index` 將會被重定向至 `module/bar/index`
'foo/bar' => 'bar/foo' // 訪問 `module/foo/bar/index` 將會被重定向至 `module/bar/foo/index`
];