例如我的根命名空间是 myns
所有的助手类在哪里。有myns\controllers
命名空间所有 Controller 在哪里。
我想用myns
命名空间默认在所有 myns\controllers
类,避免许多use myns\classname;
开头的声明。
那可能吗?
最佳答案
否。“默认命名空间”是由 namespace
建立的, 不是 use
.您有两个选择:
namespace myns\controllers {
class Foo {}
}
namespace myns {
use myns\controllers\Foo;
new Foo; // above Foo class
new Bar; // myns\Bar class
}
Use
缩短的 handle :use myns as m;
new m\Bar; // myns\Bar
实际上,在健全的代码中,您不应该从其他命名空间中获得大量内容
use
;在文件顶部显式地为一小部分(例如,多达大约一打)函数和类添加别名是很正常的。一个不错的 IDE 几乎可以自动生成这些 use
键入时的语句。
关于PHP:在子命名空间类中默认使用父命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47325708/