如何使用 composer 设置 phpseclib

How to set up phpseclib with composer

我已经使用 composer 下载了 phpseclib,它创建了路径 /var/www/html/dom/vendor/phpseclib/phpseclib/phpseclib

现在我不确定将 test.php 文件包含到 运行 的位置。不断收到错误“致命错误:Class 'phpseclib\Net\SSH2' 未在第 50 行的 /var/www/html/dom/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php 中找到”

我的 test.php 代码是

<?php
set_include_path(get_include_path() . PATH_SEPARATOR . '/phpseclib');
include('Net/SFTP.php');

$sftp = new Net_SFTP('domain');
if (!$sftp->login('user', 'pass')) {
    exit('Login Failed');
}

// outputs the contents of filename.remote to the screen
echo $sftp->get('filename.remote');
// copies filename.remote to filename.local from the SFTP server
//$sftp->get('filename.remote', 'filename.local');

?>

Composer 生成一个自动加载器。您不必关心手动包含内容。只是做:

include '/var/www/html/dom/vendor/autoload.php';

除了 include/require 命名空间也不同。这就是我的解决方案:

require_once __DIR__ . '/vendor/autoload.php';

$handler = new \phpseclib\Net\SFTP('ftp_host');

if (!$handler->login('ftp_user', 'ftp_password')) {
   exit('FTP login failed');
}

print_r($handler->nlist());