現在、 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();
}