【问题标题】:How to set up phpseclib with composer如何使用 Composer 设置 phpseclib
【发布时间】:2016-01-20 09:09:58
【问题描述】:

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

现在我不确定在哪里包含我的 test.php 文件来运行它。不断收到错误“ Fatal error: Class 'phpseclib\Net\SSH2' not found in /var/www/html/dom/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php on line 50”

我的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');

?>

【问题讨论】:

    标签: php ssh composer-php phpseclib


    【解决方案1】:

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

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

    【讨论】:

    • 我是自动加载器和作曲家的新手。从哪里获取 autoload.php?
    • 执行composer installupdatedump-autoload时会生成
    【解决方案2】:

    除了包含/要求之外,命名空间也不同。这就是我的解决方案:

    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());
    

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      相关资源
      最近更新 更多