【问题标题】:Should a PHP interface have a namespace?PHP 接口应该有命名空间吗?
【发布时间】:2015-11-12 13:29:24
【问题描述】:

我正在编写一个 PHP 接口,我想知道是否应该在该接口文件中包含命名空间语句。

那么在命名空间中拥有一个接口是一个好主意,还是应该只有实现该接口的类才应该在命名空间中?还是它们都应该有(不同的)命名空间?

这是一个命名空间中的接口示例:

<?php
namespace \Vendor\App\DatabaseAccess;

interface DatabaseAccessInterface
{
}

这是在同一命名空间内实现该接口的示例:

<?php
namespace \Vendor\App\DatabaseAccess;

class DatabaseAccess implements DatabaseAccessInterface
{
}

接口和类可以在与示例相同的命名空间中,也可以在不同的命名空间中。或者,接口可以完全省略名称空间声明。哪种方式最适合代码可重用性,为什么?

【问题讨论】:

  • 你能用一些例子详细说明你的问题吗?
  • 接口是否属于命名空间?使用与类相同的原则 - 如果使用命名空间有意义,请使用一个。通常答案是肯定的(使用命名空间),不要将全局命名空间与您的自定义接口混为一谈。
  • 是的,应该。所以,.. 去做吧!

标签: php class interface namespaces


【解决方案1】:

nathanthedeveloper 在他的评论中是正确的,答案是使用与确定类命名空间相同的原则。命名空间的原因是不要弄乱全局命名空间,在这方面类和接口之间确实没有区别。所以答案是肯定的,接口应该有一个命名空间,并且应该和类一样,因为它们都属于同一个逻辑位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多