2013-02-26 59 views
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(); 
+0

你使用作曲家嗎? – artragis 2013-02-26 13:00:23

+0

@artragis不,我不知道。 – musse1 2013-02-26 13:02:00

回答

1

我不認爲你明白命名空間是如何工作的。我建議你閱讀有關這方面的文章,例如this one on nettuts+

此外,我建議您使用the PSR-0 standards。幾乎所有的第三方庫都遵循這一點,並且他們帶有一個可以直接使用的自動加載器。

最後,你說你使用了一個外部庫。你看看composer?這是一個非常棒的工具,可以幫助您自動加載,更新和使用外部庫。我建議你觀看KnpUniversity的精彩視頻:"The Wonderfull World of Composer"

0

你應該更新自動加載器。

相關問題