Я хотел бы использовать 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';
Что мне не хватает?
Если вы используете 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');
Если вы сделали 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 конкретизирует.