该错误源于未正确引入第三方web3 php sdk,需手动加载autoload.php或改用psr-4兼容的web3p/web3.php包。

这个错误不是ThinkPHP框架本身的问题,而是你项目中明确调用了 Web3.php 文件(比如用于以太坊交互),但该文件未被正确引入或自动加载。
确认是否真的需要 Web3.php
ThinkPHP6.0 官方不内置任何区块链相关类。如果你在控制器、命令行或服务中写了类似 new Web3\Providers\HttpProvider(...) 或 use Web3\Web3;,说明你主动集成了第三方 Web3 PHP SDK(如 sc0Vu/web3.php)。该库不是 Composer 包的“标准自动加载”风格,它依赖手动引入或自定义 autoload 规则。
检查是否已安装 web3.php 库
运行以下命令确认是否已通过 Composer 安装:
-
composer show sc0vu/web3.php—— 若无输出,说明没装 - 若提示包不存在,需手动安装:
composer require sc0vu/web3.php - 注意:该库要求 PHP ≥ 7.2,且需启用 cURL、JSON、MBString 扩展
修复类找不到的关键步骤
即使安装了,sc0vu/web3.php 默认不注册 PSR-4 自动加载(它的源码结构不符合 Composer 标准),所以必须显式引入:
- 在使用前(如控制器方法开头)加一行:
require_once vendor/sc0vu/web3.php/src/autoload.php; - 或者更稳妥的做法:在
public/index.php的require __DIR__.'/../vendor/autoload.php';后追加这行 - 确保路径准确——Linux/macOS 区分大小写,
sc0vu不是Sc0Vu或SC0VU
替代方案:改用 Composer 原生支持的 Web3 包
推荐迁移到维护更活跃、支持 PSR-4 的替代库,例如:
-
binance-chain/php-sdk(适用于币安链) -
ethereum-php/ethereum-php(轻量、autoload 友好) - 或直接使用官方推荐的
web3p/web3.php(已重构为 Composer 原生包,执行composer require web3p/web3.php即可直接 use)
不复杂但容易忽略:错误根源从来不是 ThinkPHP,而是第三方 SDK 的加载方式与框架默认机制不匹配。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











