【发布时间】:2013-02-01 10:33:22
【问题描述】:
我有一个使用命名空间的 3rd 方库,我想将其添加到供应商目录中。由于某些原因,我不能为此库使用作曲家。使用 ClassLoader 的 add 方法添加它对我不起作用(“找不到类”)。详细:
我正在使用 Symfony 2.1.7。
// app/autoload.php
use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require __DIR__.'/../vendor/autoload.php';
$loader->add('Example', realpath(__DIR__.'/../vendor/example/src'));
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
供应商目录中的目录结构:
//vendor/example/src/Foo.php
namespace Example;
class Foo {
}
在我的控制器中使用它:
$bar = new \Example\Foo();
结果:
找不到类'Example\Foo'
我的错误在哪里?和/或:在 Symfony 2.1 中调试此问题的最佳方法是什么?
【问题讨论】:
-
不确定 symphony 但很可能你可以在使用
$bar = new \Example\Foo();实例化它之前尝试这个use vendor/example/src/Foo.php。 -
@SheikhHeera 将无法在自动加载器中定义命名空间。
标签: php symfony symfony-2.1