首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用与命名空间匹配的名称扩展类

问使用与命名空间匹配的名称扩展类
EN

Stack Overflow用户
提问于 2015-11-21 00:44:00
回答 1查看 46关注 0票数 1

结合PSR-4自动加载,考虑以下文件结构:

代码语言:javascript
复制
.
├── Foo
│   └── Bar.php
└── Foo.php

类Bar.php用于扩展Foo.php。假设它们已经驻留在一个深嵌套的命名空间中,那么Bar.php的标题将如下所示:

代码语言:javascript
复制
<?php
namespace My\Cool\Project\Module\Foo;
class Bar extends \My\Cool\Project\Module\Foo
{

效果很好。然而,让我困惑的是,是否有一种优雅的方法来避免重复字符串 My\Cool\Project\Module\Foo。这里潜在的问题是,必须手动重复它可能会导致排字和错误,而这些错误通常可以通过高效使用语言特性来防止。因此,我想知道是否有一种方式可以重写上面的代码,比如:

代码语言:javascript
复制
<?php
namespace My\Cool\Project\Module\Foo;
class Bar extends __NAMESPACE__
{

或

代码语言:javascript
复制
<?php
namespace My\Cool\Project\Module\Foo;
class Bar extends ..\Foo
{

或者类似的东西。

EN

回答 1

Stack Overflow用户

发布于 2015-11-21 01:30:41

(这就是为什么您实际上有名称空间;)名称空间并不意味着您必须指定要文件的“路径”

Foo.php

代码语言:javascript
复制
<?php
namespace \My\Cool\Project;

class Foo {

}

Bar.php

代码语言:javascript
复制
<?php
namespace \My\Cool\Project;
class Bar extends Foo 
{
}

我真的不知道这怎么会导致错误,特别是当你使用像PHPStorm这样的ide,当你使用记事本的时候,是的,它会导致错误,但这不是你为什么要强奸PHP的原因。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33838378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档