0

由于外部库,我必须使用命名空间。因为在我意识到使用命名空间不适用于我的__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();
4

2 回答 2

1

我认为您不了解名称空间的工作原理。我建议您阅读有关此的文章,例如nettuts+ 上的这篇文章

此外,我建议您使用PSR-0 标准。几乎所有的 3rd-party 库都遵循这一点,它们带有一个您可以直接使用的自动加载器。

最后,您说您使用外部库。你看过作曲家吗?这是一个非常棒的工具,可以帮助您自动加载、更新和使用外部库。我建议您观看 KnpUniversity 的精彩截屏:“作曲家的奇妙世界”

于 2013-02-26T13:04:36.890 回答
0

您应该更新自动加载器。

于 2013-02-26T13:06:23.400 回答