【问题标题】:How can I use all classes from namespace instead of listing them all individually?如何使用命名空间中的所有类而不是单独列出它们?
【发布时间】:2018-11-23 15:58:39
【问题描述】:

在我的控制器中,我列出了我拥有的所有实体:

use App\Entity\Members;
use App\Entity\Products;
use App\Entity\Projects;

但是因为会自动创建新实体,所以我需要类似

use AllEntities;

这可能吗?

【问题讨论】:

    标签: php symfony controller namespaces entity


    【解决方案1】:

    PHP 中没有可用的选项来一次从特定命名空间导入所有类。

    为了使用特定的类,您需要定义所谓的完全限定类名,这意味着对每个类使用 use 关键字,或者另一个选项是导入命名空间,但在实例化或使用该类时一个静态的例子,你需要使用导入的命名空间,后跟\ 和类名。

    例如: use Foo\Bar; $classOne = new Bar\ClassOne(); $classTwo = new Bar\ClassTwo();

    这在只有一个以Bar 结尾的命名空间被导入时有效。 否则,您需要为每一个别名 - 这同样适用于重复的类名 - 它们也需要别名。这是关于内置的可能性。

    当涉及到您的特定情况时 - 如果您自动创建新实体,这意味着您生成新代码 - 我在这里看到的唯一解决方案是扩展您的生成能力,以便在您需要的地方生成一些新代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 2014-12-11
      • 2012-05-02
      • 1970-01-01
      • 2020-01-02
      • 2018-10-21
      • 2018-04-13
      • 2014-10-28
      相关资源
      最近更新 更多