如何在 php 中加载 类

How to load classes in php

我需要了解如何在 php 中加载 classes。我想通过仅使用其名称实例化 class 来访问 classes 方法,例如:

$foo = new Foo();
$foo->method();

而不是这样:

$foo = new \Class\Bar\Foo();

我在 Symfony 2.7 环境中。 提前致谢!

编辑 我的错,我应该指定我想在整个项目中使用这样的 classes,而不仅仅是在几个文件中。

你应该 use 那些 classes(即导入它们)像:

use strrife\MyBundle\Entity as Entity;

...

$e = new Entity();

可以找到官方文档here

PS

如果您正在使用一些 IDE(例如,我个人强烈推荐的 PHPStorm),那么,当您键入 Entity 和这个 class 尚未导入,它为您提供了一个选项列表,用于从中导入 class。

编辑

你不应该那样做。

在整个项目中像这样导入 classes 实际上是一个坏主意,因为这可能会导致命名冲突(如果你想为 Symfony 这样做,可能会发生冲突 classes ).

作为您的项目 classes 的解决方法,您可以向 composer.json 添加几行,指定所有项目文件夹的自动加载路径。

您还可以:

  • 将所有实体放入一个文件夹(非常糟糕)
  • 或者编写一个自定义 __autoload() 函数来遍历文件和文件夹以搜索您的 class (docs),但它会带来同样的问题和一些性能问题.

但我强烈建议您不要这样做,因为...好吧,命名空间带来秩序和结构,您很可能会以 class 重新声明告终。