Я хочу использовать phpseclib в моем проекте. Если я тестирую его одним способом, все работает отлично. Но когда я поместил его в исходный код, экран будет пустым.phpseclib new NET_SSH2 не работает
Вот часть кода:
<?php
namespace data;
spl_autoload_extensions('.php');
spl_autoload_register();
session_start();
//set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
require '/phpseclib/Net/SSH2.php';
$ssh = new Net_SSH2('localhost'); // this will not work?
?>
Я работаю с пространством имен. Когда я загружаю SSH2.php с требованием, он работает нормально. Но в точке я открываю его с $ssh = new Net_SSH2('localhost');
, код разбился, и экран пуст.
В настоящее время я получаю следующее сообщение об ошибке:
Fatal error: Uncaught exception 'LogicException' with message 'Class Math_BigInteger could not be loaded' in /var/www/test/phpseclib/Net/SSH2.php:857 Stack trace: #0 [internal function]: spl_autoload('Math_BigInteger') #1 /var/www/test/phpseclib/Net/SSH2.php(857): class_exists('Math_BigInteger') #2 /var/www/test/index.php(15): Net_SSH2->Net_SSH2('localhost') #3 {main} thrown in /var/www/test/phpseclib/Net/SSH2.php on line 857
Это на самом деле код:
namespace data;
error_reporting(E_ALL);
ini_set("display_errors", 1);
spl_autoload_extensions('.php');
spl_autoload_register();
session_start();
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
require 'phpseclib/Net/SSH2.php';
$ssh = new \Net_SSH2('localhost');
Вы используете встроенный автозагрузчик по умолчанию, поэтому он пытается загрузить файл с именем Math_BigInteger.php в каталог phpseclib/Net /. Чтобы выполнить автозагрузку с помощью phpseclib 0.3/1.0, вам необходимо использовать автозагрузчик PSR-0. например. http://www.php-fig.org/psr/psr-0/ – neubert