由于外部库,我必须使用名称空间。由于在我意识到使用命名空间之前我没有使用过命名空间,因此无法使用我的__autoload()
。下面的代码将说明
无法加载类Foo \ Bar \ NamespaceClass,请更新自动加载器!
我该如何解决这个问题? Foo
类只是外部库的包装。
// This is my autoloaded class file
use Foo\Bar\NamespaceClass;
class Foo
{
public function Bar()
{
$namespaceClass = new NamespaceClass();
}
}
// This is a separate file calling my class "Foo" from global namespace
$myAutoloadedClass = new Foo();
$myAutoloadedClass->Bar();
答案 0 :(得分:1)
我认为您不了解名称空间的工作原理。我建议你阅读有关它的文章,例如this one on nettuts+。
此外,我建议您使用the PSR-0 standards。几乎所有的第三方库都遵循这一点,他们带有一个可以直接使用的自动加载器。
最后,您说您使用的是外部库。你看看composer了吗?这是一个非常好的工具,可以帮助您自动加载,更新和使用外部库。我建议你观看KnpUniversity的精彩截屏:"The Wonderfull World of Composer"
答案 1 :(得分:0)
您应该更新自动加载器。