Не удается загрузить библиотеку phpseclib, установленную с помощью composer, в приложении CakePHP

Я хотел бы использовать phpseclib librabry в моем приложении CakePHP 2.8. После установки всех зависимостей в app/Vendor каталог, который я пытаюсь попробовать установка phpseclib.

Но я не могу загрузить библиотеку:

include('Net/SFTP.php');
$sftp = new Net_SFTP('127.0.0.1');

но эта ошибка происходит:

Ошибка: класс ‘Net_SFTP’ не найден

В AppController я загружаю автоматически сгенерированное включение, и я думал, что это должно быть сделано:

require_once ROOT . DS . 'vendors' . DS . 'autoload.php';

Что мне не хватает?

1

Решение

Если вы используете composer, то вам просто нужно включить автозагрузчик композиторов. Вам не нужно включать определенные библиотеки (это точка автозагрузчика композиторов).

Если вы посмотрите на исходный код библиотеки, то заметите, что это пространство имен (https://github.com/phpseclib/phpseclib/blob/2.0.4/phpseclib/Net/SFTP.php#L38). Так что вам нужно либо импортировать пространство имен с use заявление или:

$sftp = new phpseclib\Net\SFTP('127.0.0.1');

1

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

Если вы сделали composer require phpseclib/phpseclib вместо composer require phpseclib/phpseclib:~1.0 вы используете 2.0. Net_SFTP находится только в ветке 1.0. В ветке 2.0 это \ phpseclib \ Net \ SFTP.

http://phpseclib.sourceforge.net/2.0.html конкретизирует.

1