新しいクラスでCheckfrontAPIクラスを拡張しようとしています。
私の場合、クラスの一度に1つのインスタンスのみをロードするためにシングルトンパターンを使用すると、そのエラーが発生します
致命的なエラー:CheckFrontIntegrator :: store()の宣言は、83行目の/home/my_web_site/public_html/wp-content/plugins/checkfront/class/Checkfront_Integration.phpのCheckfrontAPI :: store()の宣言と互換性がある必要があります
その問題を解決する方法について何かアイデアはありますか?
CheckfrontAPIのソースコードは次のとおりです:https ://github.com/Checkfront/PHP-SDK/blob/master/lib/CheckfrontAPI.php
そして、これがそのクラスを拡張する私のクラスです:
<?php
class CheckFrontIntegrator extends CheckfrontAPI
{
private static $instance = null;
public $tmp_file = '.checkfront_oauth';
final protected function store($data = array())
{
$tmp_file = sys_get_temp_dir() . DIRECTORY_SEPARATOR. $this->tmp_file;
if(count($data))
{
file_put_contents(
$tmp_file,
json_encode(
$data,
true
)
);
}
elseif(is_file($tmp_file))
{
$data = json_decode(
trim(
file_get_contents(
$tmp_file
)
),
true
);
}
return $data;
}
public function session($session_id, $data = array())
{
$_SESSION['checkfront']['session_id'] = $session_id;
}
public static function instance($data)
{
if(!isset(self::$instance))
{
self::$instance = new CheckFrontIntegrator($data);
}
return self::$instance;
}
public function __construct($data)
{
if(session_id() == '')
{
session_start();
}
parent::__construct($data, session_id());
}
}
?>
そして、私はそのクラスの新しいインスタンスを次のように開始します。
$this->checkfront_integrator = CheckFrontIntegrator::instance($args);
ここで、argsは、新しいオブジェクトを開始するためにクラスが必要とするすべての重要な情報です。
編集後
メソッドストアを次の場所から変更しました。
final protected function store($data = array())
....
に
protected function store($data)
....
そして問題はまだ発生します:(