引入BurakBoz/CyberLink库报错:phpseclib\Net\SSH2类未找到
解决「Class 'phpseclib\Net\SSH2' not found」错误
这个问题本质是依赖类没有被正确加载——你直接require了CyberLink.php,但没通过Composer的自动加载器来加载它依赖的phpseclib库。以下是一步步的解决方法:
1. 改用Composer自动加载器
你当前的代码直接引入了CyberLink.php,但这个库的依赖(比如phpseclib)是由Composer管理的,必须通过Composer生成的自动加载文件才能被PHP找到。修改你的index.php开头部分:
<?php // 替换原来的 require("CyberLink.php"); require __DIR__ . '/vendor/autoload.php'; // 后续代码保持不变 $ip = "127.0.0.1"; $user = "root"; $password = "TopSecretPassword"; // ... 其余代码
2. 确认依赖已正确安装
如果执行composer require burakboz/cyberlink:dev-master时没有报错,但vendor目录里缺少phpseclib,尝试重新生成自动加载映射并重新安装依赖:
# 重新生成自动加载文件 composer dump-autoload # 或者重新安装所有依赖 composer install
3. 检查项目结构是否规范
确保你的项目是标准的Composer项目结构,不要手动把CyberLink.php复制到项目根目录——让Composer来管理文件路径,通过命名空间自动加载:
your-project/ ├── vendor/ │ ├── autoload.php │ ├── burakboz/ │ │ └── cyberlink/ │ └── phpseclib/ ├── index.php
错误原因说明
CyberLink库内部使用了phpseclib\Net\SSH2类,但这个类不是CyberLink本身的一部分,是它的第三方依赖项。当你直接require单个CyberLink.php文件时,PHP不知道去哪里找SSH2类——只有通过Composer的autoload.php,才能自动加载所有已安装的依赖类。
内容的提问来源于stack exchange,提问作者Omer Mustafa
相关产品推荐
相关产品推荐

