1

我想在我的 CakePHP 2.8 应用程序中使用 phpseclib 库。将所有依赖项安装到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';

我错过了什么?

4

2 回答 2

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详细说明。

于 2016-11-01T21:58:54.550 回答
1

如果您使用作曲家,那么您只需要包含作曲家自动加载器。您不需要包含特定的库(这就是作曲家自动加载器的重点)。

如果您查看该库的源代码,您会注意到它是命名空间的(https://github.com/phpseclib/phpseclib/blob/2.0.4/phpseclib/Net/SFTP.php#L38)。因此,您需要使用该use语句导入命名空间,或者:

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

于 2016-11-01T13:43:17.823 回答