現在、MVC ルーターのディスパッチ機能を改善しようとしています。私の主な問題は、ユーザーがオブジェクトにアクセスしようとして失敗した場合、明らかに空白のページが返されることです。
たとえば、 という名前のオブジェクトがerror
あり、クラス メソッドの 1 つがsetType()
である場合、ユーザーerror/settype
は URI を入力できます。
すべての URL が書き込まれますindex.php?url=$1
$url = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$controller = !empty($url[0]) ? $url[0] : 'home';
$method = !empty($url[1]) ? $url[1] : 'index';
$params = !empty($url[2]) ? $url[2] : $_POST;
if (class_exists($controller)){
$dispatchedController = new $controller;
if (! method_exists($controller, $method)){
/**
* Error handling
**/
}
return $dispatchedController->$method($params);
} else{
/**
* Error handling
**/
}
どうすればルーターを改善できますか? ホワイトリストまたはブラックリストを提供することは、あまり実用的ではないと思います。