PHP:在子命名空间类中默认使用父命名空间

标签 php namespaces

例如我的根命名空间是 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/

    相关文章:

    php - 导入 XML 节点并删除命名空间

    javascript - 我怎样才能用javascript解码URI?

    php - fatal error : Cannot use object of type mysqli_result as array

    php - 使 Doctrine 的 UniqueEntity 约束不区分大小写

    vb.net - DataContract WCF 中的命名空间

    kubernetes - kubernetes 命名空间中部署定义的唯一性

    c++ - 隐藏 3rd 方 namespace 危险吗?

    javascript - Ajax不存储数据

    php - 什么是原始 POST 数据?

    nginx - Kubernetes Nginx Ingress Controller 应该在什么命名空间?