【发布时间】:2015-02-10 23:24:05
【问题描述】:
我正在尝试使用 zf2 配置 phpseclib。
我指的是https://github.com/phpseclib/phpseclib,我安装了composer。 我将包保存在 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\Net; 使用 phpseclib\Net\SSH2;
确定
但我收到此错误:
致命错误:在...中找不到类 'phpseclib\Net\SSH2'
我正在使用 Win8、Xampp 和 PHP5.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": "terrafrost@php.net",
"role": "Lead Developer"
},
{
"name": "Patrick Monnerat",
"email": "pm@datasphere.ch",
"role": "Developer"
},
{
"name": "Andreas Fischer",
"email": "bantu@phpbb.com",
"role": "Developer"
},
{
"name": "Hans-Jürgen Petrich",
"email": "petrich@tronic-media.com",
"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"
},
}
【问题讨论】:
-
你能发布你的 composer.json 文件吗?除非您使用的是 2.0 分支,否则您可能使用的是不是命名空间的 phpseclib 版本。
-
我编辑了我的问题并添加了 composer.json 文件,感谢您的检查
-
我对你的 composer.json 更感兴趣——而不是 phpseclib 的 composer.json。还是您的项目没有自己的 composer.json?如果是这样,那么您是如何下载 phpseclib 的? phpseclib.sourceforge.net 提到的版本是 0.3.10,没有命名空间。命名空间的版本存在于github.com/phpseclib/phpseclib/tree/2.0
-
是的,事实上我最后下载了这个。我已经用我的项目的 composer.json 文件更新了我的问题
-
现在好像可以了。最后请告诉我我做错了什么以及我不应该做什么。