0

私が問題を抱えている状況を説明しようと思います:

メインフォルダが1つあります。私はそこにすべてのファイル(理由のために空のクラス)を保持し、同じファイルを含む1つのサブフォルダーをここにすべての実装で保持します(空のクラスはそれらを拡張します)。

メインフォルダの名前空間はとして宣言されProject/Folder、サブフォルダはとして宣言されますProject/Folder/Subfolder。これらはクラスの宣言です:

namespace Project\Folder;
class Foo extends Subfolder\Foo {  }

namespace Project\Folder\Subfolder;
class Foo {  }

私が達成したいのは、Project\Folder\Subfolder\Fooその名前だけで、下位レベルのこれらの空のクラスを介して内部から他のクラスを呼び出すことができるようにすることです。

namespace Project\Folder\Subfolder;
class Foo {
     function bar() {
        Another_Class::do_something();
     }
}

デフォルトでは、名前空間Another_Classから呼び出されます。Project\Folder\SubfolderProject \ Folder名前空間のAnother_Classを同じ構文で参照したいのですが、それは可能ですか?

私はこれを十分に明確に説明したことを願っていますが、そうでない場合は、表彰状を書いてください。それをより明確にするよう努めます。

4

1 に答える 1

2

useステートメントを使用してそれを達成できます。

use Project\Folder\Subfolder\Another_Class as SomeAlias;

// ...

SomeAlias::doSomething();

// or

$object = new SomeAlias();
$object->doSomething();

または、名前空間全体を参照する必要があります。

\Project\Folder\Subfolder\Another_Class::doSomething();

// or

$object = new \Project\Folder\Subfolder\Another_Class();
$object->doSomething();

詳細はこちら。

于 2012-11-17T21:45:16.037 に答える