无法在CakePHP应用程序中加载与composer一起安装的phpseclib库

时间:2016-11-01 13:38:36

标签: php composer-php cakephp-2.8

我想在CakePHP 2.8应用程序中使用phpseclib librabry。将所有依赖项安装到app/Vendor目录后,我尝试phpseclib installation

但我无法加载库:

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

但发生此错误:

  

错误:未找到“Net_SFTP”类

在AppController中,我正在加载自动生成的include,我认为必须这样做:

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

我错过了什么?

2 个答案:

答案 0 :(得分: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');

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