PHP:默认情况下,在子命名空间类中使用父命名空间

时间:2017-11-16 09:18:03

标签: php namespaces

例如,我的根命名空间是myns,其中都是帮助程序类。所有控制器都有myns\controllers命名空间。

我想在所有myns类中默认使用myns\controllers命名空间,避免使用很多

use myns\classname;

开头的声明。

这可能吗?

1 个答案:

答案 0 :(得分:1)

没有。 “默认命名空间”由namespace建立,而不是use。您有两种选择:

  1. 切换命名空间:

    namespace myns\controllers {
        class Foo {}
    }
    
    namespace myns {
        use myns\controllers\Foo;
    
        new Foo;  // above Foo class
        new Bar;  // myns\Bar class
    }
    
  2. Use一个缩短的句柄:

    use myns as m;
    
    new m\Bar;  // myns\Bar
    
  3. 实际上,在理智的代码中,你不应该从其他名称空间中获得的东西use;显式别名文件顶部的一小部分(比如说,最多十几个)函数和类是非常正常的。一个体面的IDE可以在您键入时自动生成这些use语句。