Использование классов без пространства имен с Yii2

Я хочу использовать Checkout SDK с Yii2, но поскольку эта библиотека не поддерживает стандарты PSR-4 (пространства имен), у меня возникает проблема с ее интеграцией. Как я могу использовать эту библиотеку для своей цели?

РЕДАКТИРОВАТЬ

Как я уже сказал, я пытался использовать класс как

$sale = new \Twocheckout_Sale(); 

но все же я не могу заставить его работать.

Когда класс не имеет пространства имен, это означает, что он находится в корневом пространстве имен.

Опция 1:

 use Twocheckout; ... Twocheckout::format('json'); 

Вариант 2:

 \Twocheckout::format('json'); 

Например, расширение PHPExcel также не имеет пространств имен, аналогичный вопрос был дан на официальном форуме .

Связанные вопросы:

Импорт класса без пространства имен в класс с именами

Как использовать «корневое» пространство имен php?

Официальная документация PHP:

http://php.net/manual/en/language.namespaces.fallback.php

Обновить:

Но PHPExcel имеет собственный автозагрузчик, а 2Checkout – нет. Все классы включены, если требуется один основной абстрактный класс. Это даже упоминается в официальном чтении :

 require_once("/path/to/2checkout-php/lib/Twocheckout.php"); 

Поэтому вам необходимо вручную включить его перед использованием классов библиотеки. Это можно сделать с помощью псевдонима, чтобы избежать написания полного пути.

 use Yii; ... $path = Yii::getAlias("@vendor/2checkout/2checkout-php/lib/Twocheckout.php"); require_once($path); $sale = new \Twocheckout_Sale(); 

Для использования в одном месте все в порядке, но если оно будет использоваться во многих местах приложения, лучше потребовать его в скрипте ввода index.php :

 require(__DIR__ . '/../../vendor/autoload.php'); require(__DIR__ . '/../../vendor/2checkout/2checkout-php/lib/Twocheckout.php'); require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php'); require(__DIR__ . '/../../common/config/bootstrap.php'); require(__DIR__ . '/../config/bootstrap.php'); 

Я также рекомендую читать советы в официальном документе об использовании загруженных библиотек , есть больше вариантов, которые вы можете использовать в зависимости от конкретной библиотеки.

 /* Try this */ public function actionTest(){ //package require(Yii::getAlias('@vendor')."/Excel/Spreadsheet_Excel_Reader.php"); $exldata = new \Spreadsheet_Excel_Reader(); }