我需要了解如何在php中加载类。我想通过仅使用其名称实例化类来访问类方法,例如:
$foo = new Foo();
$foo->method();
而不是这样:
$foo = new \Class\Bar\Foo();
我在Symfony 2.7环境中。 提前谢谢!
修改 我的坏,我应该指定我想在整个项目中使用这样的类,而不仅仅是在几个文件中。
答案 0 :(得分:1)
你应该use
这些类(即导入它们),如:
use strrife\MyBundle\Entity as Entity;
...
$e = new Entity();
官方文档可以找到here。
如果您正在使用某些IDE(例如,我强烈推荐的PHPStorm),那么当您键入Entity
并且此类尚未导入时,它会为您提供一个导入选项列表那个班来自。
你不应该这样做。
在整个项目中导入这样的类实际上是一个坏主意,因为这可能会导致命名冲突(如果您想为Symfony类执行此操作,可能会这样做。)
作为项目类的变通方法,您可以向composer.json
添加几行,指定所有项目文件夹的自动加载路径。
你也可以:
__autoload()
函数,该函数将遍历搜索您的类(docs)的文件和文件夹,但它会带来相同的问题+一些性能问题。但是我强烈反对你这样做,因为......好吧,命名空间会带来秩序和结构,你最终可能会重新进行课程重新声明。