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 規格を使用することをお勧めします。ほとんどすべてのサードパーティ ライブラリはこれに従っており、直接使用できるオートローダーが付属しています。

最後に、外部ライブラリを使用すると言いました。composerをご覧になりましたか?これは、外部ライブラリの自動読み込み、更新、および使用を支援する非常に優れたツールです。KnpUniversity の素晴らしいスクリーンキャスト「The Wonderfull World of Composer」をご覧になることをお勧めします。

于 2013-02-26T13:04:36.890 に答える
0

オートローダーを更新する必要があります。

于 2013-02-26T13:06:23.400 に答える