【发布时间】:2016-11-19 21:16:41
【问题描述】:
我正在尝试为我的类声明接口,如下所示:
namespace Helpers\Interfaces {
interface Cache {
public static function getInstance($profile = null);
}
}
然后我像这样应用它们:
namespace Helpers {
class Cache implements Interfaces\Cache {
public static function getInstance($profile = null) {
/* ... */
}
}
}
到目前为止,一切都很好(显然,至少)。我遇到的问题是 NetBeans 给了我一个错误,指出我的类不是抽象的并且没有实现某个方法。
该方法属于我创建的一个对象,用于收集操作某些方法所需的配置参数,而不根据对象提供特定的配置选项(如主机、端口、API 密钥等)。
在这个例子中,这个方法被称为\Configuration\Helpers\Cache::getConfiguration($profile);
冲突的声明来自这个接口:
namespace Configuration\Helpers\Interfaces {
interface Cache {
public static function getConfiguration($profile = null);
}
}
应用如下:
namespace Configuration\Helpers {
class Cache implements Interfaces\Cache {
public static function getConfiguration($profile = null) {
/* ... */
}
}
}
它有效地混合了接口,尽管它们是命名空间的! 我要注意的是接口和实现此类接口的类声明始终在同一个文件中,每个对象一个文件。
NetBeans 8.2 上的 PHP 版本是 7.0.13。
我做错了什么?
【问题讨论】:
标签: php interface namespaces