首页 > 解决方案 > phpseclib 2.0 无法使用 Composer 创建自动加载

问题描述

我为一家公司工作,该公司的服务器和计算机锁定得比……想象的更紧。这意味着如果没有大量文书工作,我将无法使用 composer 或安装它。我是一名开发人员,通常使用 JS 而不是 php 进行编程,但对于这个项目,我需要从智能卡上获取 CAC X509 信息。我已经花了大约 4 个小时试图让 phpseclib 工作。请注意,我几乎不懂php。我遵循 github 和网站的指示,主要是我已经下载并解压缩了 2.0 的文件并将它们放在我的目录中,我正在遵循网站上的示例,例如http://phpseclib.sourceforge.net/x509/ 2.0/examples.html#getpublickey。但是当我这样做时:

$x509 = new X509();
$x509->loadX509($_SERVER['SSL_CLIENT_CERT']);
echo $x509->getPublicKey();

我收到错误:致命错误:在...中找不到类“X509”

我还尝试了其他方法,例如将目录包含到文件中,例如:

$x509 = new phpseclib\File\X509();
$x509->loadX509($_SERVER['SSL_CLIENT_CERT']);
echo $x509->getPublicKey();

和 (new phpseclib_File_X509) 得到错误:致命错误:类 'phpseclib\File\X509' not found in ...

请帮忙!我从来不需要自动加载,我觉得这是问题所在?就像文件没有加载一样?我也在不同的时间做了下面这两个操作,但都无济于事。

include'phpseclib/File/X509.php';

use phpseclib\File\X509;

当我将错误日志放入 X509 进行检查时,我也发现 ASN1 也未找到。

编辑:也有助于知道我的 php 版本是 5.5.26

标签: phpphpseclib

解决方案


你需要遵循标准的Composer 项目设置说明,Larry。之后,您按照使用 Composer 的phpseclib上的说明进行操作

composer require phpseclib/phpseclib:~2.0

从根项目目录中。之后,您将不需要使用 Sourceforge 站点上示例中的 include/require,因为这些示例不使用 Composer 的自动加载功能 - 您可以按照这个示例来使用它。


推荐阅读