Класс PHP class_implements не существует

Я внедряю платежную систему с помощью php paysafe SDK ( https://github.com/paysafegroup/paysafe_sdk_php)

class_implements (): возврат класса не существует и не может быть загружен

Я могу создать класс Refund, как это $r = new Refund() но не с class_implements(),

Разработчики Paysafe SDK находятся под Windows, и я на Ubuntu, это может иметь значение с class_implements()?

$refunds = $this->client->cardPaymentService()->getRefunds(new Refund(array('id' => $p->refund_num)));// class exist
$r = new Refund(); // class exist
class_implements("Refund"); // class_implements(): Class Refund does not exist and could not be loaded
$test = new Pagerator($this->client, $refunds , "Refund"); // class_implements(): Class Refund does not exist and could not be loaded

public function __construct(\Paysafe\PaysafeApiClient $client, $data, $className)
    {
        if (!in_array('Paysafe\Pageable', class_implements($className))) {
            throw new PaysafeException("$className does not implement \Paysafe\Pageable");
        }

        $this->client = $client;

        $this->className = $className;
        $this->arrayKey = call_user_func($className . '::getPageableArrayKey');
        $this->position = 0;

        $this->parseResponse($data);
    }

2 ответа

Вызов class_implements с не загружаемым именем класса или не-объектом приводит к предупреждению.

class_implements("Refund"); // class_implements(): Class Refund does not exist and could not be loaded

Если вы проверите библиотеку Paysafe и зайдите в определение объекта.

https://github.com/paysafegroup/paysafe_sdk_php/blob/master/source/paysafe/CardPayments/Refund.php

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

function __autoload($class_name) {
   require_once $class_name . '.php';
}

Мы только что выпустили TAG 1.03, который исправил некоторые проблемы с автозагрузкой, если у вас все еще есть проблема.

https://github.com/paysafegroup/paysafe_sdk_php/commits/master

Вы также можете использовать Repag Packagist: https://packagist.org/packages/paysafegroup/paysafe_sdk_php

class_implements недоступна в версиях до 5.1.0 - пожалуйста, проверьте, какая версия PHP работает на вашем сервере.

Другие вопросы по тегам