2015-02-10 82 views
0

我想用zf2配置phpseclib。phpseclib zf2致命錯誤調用類

我指的是https://github.com/phpseclib/phpseclib,我安裝了作曲家。 我將軟件包保存在vendor/phpseclib中。

內部供應商/作曲家=>

<?php 

// autoload_namespaces.php generated by Composer 

$vendorDir = dirname(__DIR__); 
$baseDir = dirname($vendorDir); 

return array(
    'Zend\\' => $vendorDir . '/zendframework/zendframework/library/', 
    'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/', 
    'phpseclib\\' => $vendorDir . '/phpseclib/', 
); 

那麼作爲他們建議創建用下面的代碼的PHP的文件:

<?php 
include 'vendor/autoload.php'; 
$ssh = new \phpseclib\Net\SSH2('www.domain.tld'); 
if (!$ssh->login('username', 'password')) { 
exit('Login Failed'); 
} 
echo $ssh->exec('pwd'); 
echo $ssh->exec('ls -la'); 
?>  

我還添加 使用phpseclib \淨; 使用phpseclib \ Net \ SSH2;

,以確保

但我得到這個錯誤:

致命錯誤:類 'phpseclib \網絡\ SSH2' 沒有發現......

我使用Win8的,XAMPP和PHP5 0.5

我composer.json是:

{ 
"name": "phpseclib/phpseclib", 
"type": "library", 
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", 
"keywords": [ 
    "security", 
    "crypto", 
    "cryptography", 
    "encryption", 
    "signature", 
    "signing", 
    "rsa", 
    "aes", 
    "blowfish", 
    "twofish", 
    "ssh", 
    "sftp", 
    "x509", 
    "x.509", 
    "asn1", 
    "asn.1", 
    "BigInteger" 
    ], 
"homepage": "http://phpseclib.sourceforge.net", 
"license": "MIT", 
"authors": [ 
    { 
     "name": "Jim Wigginton", 
     "email": "[email protected]", 
     "role": "Lead Developer" 
    }, 
    { 
     "name": "Patrick Monnerat", 
     "email": "[email protected]", 
     "role": "Developer" 
    }, 
    { 
     "name": "Andreas Fischer", 
     "email": "[email protected]", 
     "role": "Developer" 
    }, 
    { 
     "name": "Hans-Jürgen Petrich", 
     "email": "[email protected]", 
     "role": "Developer" 
    } 
], 
"require": { 
    "php": ">=5.0.0" 
}, 
"require-dev": { 
    "phing/phing": "~2.7", 
    "phpunit/phpunit": "~4.0", 
    "sami/sami": "~2.0", 
    "squizlabs/php_codesniffer": "~1.5" 
}, 
"suggest": { 
    "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.", 
    "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", 
    "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 4.3.3." 
}, 
"include-path": ["phpseclib/"], 
"autoload": { 
    "psr-0": { 
     "Crypt": "phpseclib/", 
     "File": "phpseclib/", 
     "Math": "phpseclib/", 
     "Net": "phpseclib/", 
     "System": "phpseclib/" 
    }, 
    "files": [ 
     "phpseclib/Crypt/Random.php" 
    ] 
}, 
"extra": { 
    "branch-alias": { 
     "dev-master": "0.3-dev" 
    } 
} 
} 

我composer.json是

{ 
"name": "zendframework/skeleton-application", 
"description": "Skeleton Application for ZF2", 
"license": "BSD-3-Clause", 
"keywords": [ 
    "framework", 
    "zf2" 
], 
"homepage": "http://framework.zend.com/", 
"require": { 
    "php": ">=5.3.3", 
    "zendframework/zendframework": "2.*", 
    "doctrine/common" : ">=2.1", 
    "phpseclib/phpseclib": "0.3.10" 
}, 

}

+0

您可以發佈您的composer.json文件嗎?除非你使用2.0分支,否則你可能使用的是不是命名空間的phpseclib版本。 – neubert 2015-02-11 19:27:36

+0

我編輯了我的問題,並添加了composer.json文件感謝檢查 – 2015-02-11 19:41:26

+0

我對你的composer.json更感興趣 - 不是在phpseclib的composer.json。或者你的項目沒有它自己的composer.json?如果是這樣,那麼你是如何下載phpseclib的? phpseclib.sourceforge.net提到的版本是0.3.10,沒有命名空間。命名空間的版本存在於https://github.com/phpseclib/phpseclib/tree/2.0 – neubert 2015-02-11 21:27:44

回答

0

在與紐伯特的建議,最後我解決它。

我只是需要在https://github.com/phpseclib/phpseclib/tree/2.0

下載正確的軟件包和執行PHP composer.phar安裝--dev,如果沒有工作,我只是改變了我的autoload_namespaces.php在文件夾供應商/作曲:

// autoload_namespaces.php generated by Composer 
$vendorDir = dirname(__DIR__); 
$baseDir = dirname($vendorDir); 

return array(
    'Zend\\' => $vendorDir . '/zendframework/zendframework/library/', 
    'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/', 
    'phpseclib\\' => $vendorDir . '/phpseclib/', 
); 

該行'phpseclib \'=> $ vendorDir。 '/ phpseclib /',是解決方案的關鍵