我目前正在创建一个需要使用OAuth的库。PHP 有一个OAuth
扩展,我个人已经安装并可以使用它,但我不想为我的库要求此依赖项,因为其他人可能无法使用它。
我创建了一个OAuthInterface
接口,我希望能够通过扩展本机OAuth
类并实现它来实现这个接口:
namespace My\Lib\OAuth;
class OAuth extends \OAuth implements OAuthInterface {}
但是,我很难创建一个与本机OAuth
类的方法签名完全匹配的接口,并且不断收到以下错误:
PHP Fatal error: Declaration of OAuth::fetch() must be compatible with My\\Lib\\OAuth\\OAuthInterface::fetch($url, array $params = Array, $method = 'GET', array $headers = Array) in /path/to/My/Lib/OAuth/OAuth.php on line 7
我想做的事是不可能的吗?我是否需要让我的实现成为一个传递类来组合原生实例OAuth
而不是扩展它?还是我只是还没有找到正确的方法签名?
这是界面,如果有帮助:
namespace My\Lib\OAuth;
interface OAuthInterface
{
public function fetch($url, array $params = [], $method = 'GET', array $headers = []);
public function getLastResponse();
}