データベース用の小さな RESTful API を作成しようとしていますが、ユーザーの要求に基づいてコントローラー オブジェクトを動的に作成する際に問題が発生しました。これは、すべてのコードが名前空間を使用しており、次のことを行っているためです。
$api = new $controllerName($request);
うまくいきません。「ReadController」に解決されるため$controllerName
、実際に\controllers\lottery\ReadController
はエラーです
クラスへのパスを定義する全体の部分は次のとおりです。
if ($method === 'GET') {
$controllerName = 'ReadController';
// @NOTE: $category is a part of $_GET parameters, e.g: /api/lottery <- lottery is a $category
$controllerFile = CONTROLLERS.$category.'/'.$controllerName.'.php';
if (file_exists($controllerFile)) {
include_once($controllerFile);
$api = new $controllerName($request);
} else {
throw new \Exception('Undefined controller');
}
}
そして、core\controllers\lottery\ReadController.php の ReadController の宣言
namespace controllers\lottery;
class ReadController extends \core\API {
}
オブジェクトを動的に作成する方法はありますか?
ありがとう!