从具有不同名称空间的类动态创建新对象

德布里亚

我试图为我的数据库创建一个小的RESTful API,但是遇到一个基于用户请求动态创建控制器对象的问题,因为我所有的代码都在使用名称空间,并且只是在做:

$api = new $controllerName($request);

不行 因为$controllerName会解析为“ ReadController”,但实际上\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 {

}

任何想法如何动态创建对象?

谢谢!

$controllerName = 'controllers\lottery\ReadController';
new $controllerName($request);

从字符串实例化的类必须始终使用完全限定的类名

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有相同名称空间的不同Composer软件包

来自分类Dev

具有路由属性的不明确的控制器名称:具有相同名称和不同名称空间的控制器用于版本控制

来自分类Dev

ServiceStack-在不同命名空间中具有相同名称的请求类会引发错误

来自分类Dev

在循环中创建多个具有不同名称的对象以存储在数组列表中

来自分类Dev

为什么我的WCF Web服务在具有不同字段名称的不同名称空间中显示此对象?

来自分类Dev

Java命名空间-不同包中具有相同名称的两个类

来自分类Dev

继承具有相同名称空间和相同类名的类

来自分类Dev

不同名称空间下具有相同结构的类之间的转换

来自分类Dev

无法在不同模块中创建具有相同名称的私有类

来自分类Dev

具有相同名称的不同应用?

来自分类Dev

复制具有不同名称的对象属性的最快方法?

来自分类Dev

Maven从不同的依赖项中动态排除具有相同名称的类

来自分类Dev

当类和名称空间具有相同名称时区分类和名称空间

来自分类Dev

在tkinter中创建多个具有不同名称的按钮

来自分类Dev

在Cassandra中重新创建具有相同名称的表/键空间是否不好?

来自分类Dev

具有不同名称空间的NUnit全局设置

来自分类Dev

从具有相同名称的库中包含具有相同名称的不同对象。

来自分类Dev

CLR如何在运行时区分不同程序集中具有相同名称但没有名称空间的类?

来自分类Dev

创建新的类,该子类继承具有相同名称的现有类

来自分类Dev

在laravel中创建的类/不同名称空间中访问和使用雄辩

来自分类Dev

继承具有相同名称空间和相同类名的类

来自分类Dev

创建具有相同名称的类。这是如何运作的?

来自分类Dev

单击Java swing中的按钮,使用新名称创建具有新名称的类的新对象

来自分类Dev

对具有不同名称空间元素的单个根元素进行Xpath验证

来自分类Dev

Javascript:如何根据索引在循环内创建具有不同名称的新变量

来自分类Dev

声明具有相同名称的不同类的多个对象

来自分类Dev

具有不同名称空间的Caliburn Micro ViewLocator

来自分类Dev

两个具有相同名称的类可以跨两个不同的程序集位于同一个命名空间中吗?

来自分类Dev

使具有相同名称的新 ArrayList 表现不同

Related 相关文章

  1. 1

    具有相同名称空间的不同Composer软件包

  2. 2

    具有路由属性的不明确的控制器名称:具有相同名称和不同名称空间的控制器用于版本控制

  3. 3

    ServiceStack-在不同命名空间中具有相同名称的请求类会引发错误

  4. 4

    在循环中创建多个具有不同名称的对象以存储在数组列表中

  5. 5

    为什么我的WCF Web服务在具有不同字段名称的不同名称空间中显示此对象?

  6. 6

    Java命名空间-不同包中具有相同名称的两个类

  7. 7

    继承具有相同名称空间和相同类名的类

  8. 8

    不同名称空间下具有相同结构的类之间的转换

  9. 9

    无法在不同模块中创建具有相同名称的私有类

  10. 10

    具有相同名称的不同应用?

  11. 11

    复制具有不同名称的对象属性的最快方法?

  12. 12

    Maven从不同的依赖项中动态排除具有相同名称的类

  13. 13

    当类和名称空间具有相同名称时区分类和名称空间

  14. 14

    在tkinter中创建多个具有不同名称的按钮

  15. 15

    在Cassandra中重新创建具有相同名称的表/键空间是否不好?

  16. 16

    具有不同名称空间的NUnit全局设置

  17. 17

    从具有相同名称的库中包含具有相同名称的不同对象。

  18. 18

    CLR如何在运行时区分不同程序集中具有相同名称但没有名称空间的类?

  19. 19

    创建新的类,该子类继承具有相同名称的现有类

  20. 20

    在laravel中创建的类/不同名称空间中访问和使用雄辩

  21. 21

    继承具有相同名称空间和相同类名的类

  22. 22

    创建具有相同名称的类。这是如何运作的?

  23. 23

    单击Java swing中的按钮,使用新名称创建具有新名称的类的新对象

  24. 24

    对具有不同名称空间元素的单个根元素进行Xpath验证

  25. 25

    Javascript:如何根据索引在循环内创建具有不同名称的新变量

  26. 26

    声明具有相同名称的不同类的多个对象

  27. 27

    具有不同名称空间的Caliburn Micro ViewLocator

  28. 28

    两个具有相同名称的类可以跨两个不同的程序集位于同一个命名空间中吗?

  29. 29

    使具有相同名称的新 ArrayList 表现不同

热门标签

归档