Как использовать phpseclib в codeigniter? - PullRequest
0 голосов
/ 27 декабря 2018

Я поместил phpseclib файлы в мою папку application/third_party, я включил путь в свой контроллер, как показано ниже

set_include_path(get_include_path() . PATH_SEPARATOR . 'third_party/phpseclib/Net/SSH2.php'); 

Но я не могу создать экземпляр изэтот класс.Получение ошибки, так как

класс ssh2 не найден

Какой самый подходящий способ использовать phpseclib?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

После долгих исследований я наконец нашел свою проблему.Проблема была - я не добавил включить путь после установки set_include_path.Вот что я сделал -
1. Я поместил файлы phpseclib в папку application / third_party.
2. В моем контроллере я установил путь включения как set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
3. После установки пути,Я включил путь как include_once(APPPATH.'third_party/phpseclib/Net/SFTP.php');
4. Теперь я могу создать свой экземпляр как $sftp = new Net_SFTP('your-host');
5. И подключить свой сервер как $sftp->login('user-name', 'password')

0 голосов
/ 27 декабря 2018

На github.com есть две ветки (помимо основной ветки) - 1.0 и 2.0.2.0 является пространством имен, поэтому для вызова вам нужно сделать \ phpseclib \ Net \ SSH2.

Если вы загрузили zip-файл с phpseclib.sourceforge.net, то вы используете ветку 1.0.Если это то, что вы используете, вам нужно обновить путь включения.например.

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

Если вы используете ветку 2.0 (или основную ветку), вам нужно использовать автозагрузчик.Пример:

<?php
// https://raw.githubusercontent.com/composer/composer/master/src/Composer/Autoload/ClassLoader.php

include('autoloader.php');

$loader = new \Composer\Autoload\ClassLoader();
$loader->addPsr4('phpseclib\\', __DIR__.'/phpseclib');
$loader->register();

use \phpseclib\Crypt\RSA;

$rsa = new RSA();
...