エイリアスを使用していくつかの長いクラス名の省略形を提供するために、クラスに名前空間を付けました。
namespace some_namespace;
use \VeryLongClassnameWhichIUseOften as Short;
class MyClass {
public static method do_stuff() {
Short::do_something(Short::do_other_stuff());
}
}
MyClass
これで、グローバル名前空間で期待されるサードパーティのコードがいくつかあります。
MyClass
どういうわけかグローバル名前空間にエクスポートできますか?
私は試した
class \MyClass {
...
}
しかし、明らかにそれは許可されていません(予期しないT_NS_SEPARATOR、T_STRINGを期待しています)。
私もこれを試しました:
namespace some_namespace {
use \VeryLongClassnameWhichIUseOften as Short;
class MyClass {
...
}
}
namespace {
use \some_namespace\MyClass as MyClass;
}
これは追加のエラーをスローしませんが、MyClassはまだグローバル名前空間で使用できません(クラス'MyClass'が見つかりません)。理由がよくわかりません。