Отправить интерфейс конструктору Переполнение стека

Я скачал пример для платежного соединения. Нет, я пытаюсь использовать его, но конструктор хочет получить интерфейс, когда я объявляю ИмяКласса
Но я понятия не имею, как это сделать. Я старался

$interface = CallbackInterface::class;
$interface = CallbackInterface();
$interface = CallbackInterface;

И многое другое, но я не могу понять это. Единственное, что я знаю, это реализовать интерфейс с классом. Может быть, вопрос нуб, но я искал почти день безуспешно.

$config = new Config('string1', 'string2');
$pay = new ClassName($config, $interface);

interface CallbackInterface
{
public function Key($sIdentifier, $sTransactionKey);
public function tSuccess($sTransactionKey);
}

class ClassName
{
public function __construct(Config $oConfig, CallbackInterface $oCallbacks)
{
$this->oConfig = $oConfig;
$this->oCallbacks = $oCallbacks;
}
}

1

Решение

вы должны искать решение по этим направлениям

// Create a class that implements the interface (e.g. MyClass)
// MyClass implements the interface functions: Key and tSuccess
// MyClass can now be injected as type CallbackInterface into the __construct() of class ClassName

Class MyClass implements CallbackInterface
{
public function Key($sIdentifier, $sTransactionKey)
{
// your implementation here
}
public function tSuccess($sTransactionKey)
{
// your implementation here
}
}

interface CallbackInterface
{
public function Key($sIdentifier, $sTransactionKey);
public function tSuccess($sTransactionKey);
}

class ClassName
{
public function __construct(Config $oConfig, CallbackInterface $oCallbacks)
{
$this->oConfig = $oConfig;
$this->oCallbacks = $oCallbacks;
}
}

$config = new Config('string1', 'string2');
$interface = new MyClass(); // you've now instantiated an object of type CallbackInterface
$pay = new ClassName($config, $interface);
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector