You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装endroid/qr-code后CodeIgniter4运行php spark serve报错如何修复

问题现象

从endroid的GitHub仓库安装qr-code库后,执行php spark serve命令启动服务时抛出如下致命错误:

Fatal error: Uncaught TypeError: Argument 1 passed to CodeIgniter\CLI\Console::__construct() must be an instance of CodeIgniter\CodeIgniter, int given, called in D:\Kuliah\Magang\akses-log-data-center-itb\spark on line 49 and defined in D:\Kuliah\Magang\akses-log-data-center-itb\vendor\codeigniter4\framework\system\CLI\Console.php:29
Stack trace:
#0 D:\Kuliah\Magang\akses-log-data-center-itb\spark(49): CodeIgniter\CLI\Console->__construct(1)
#1 {main}
  thrown in D:\Kuliah\Magang\akses-log-data-center-itb\vendor\codeigniter4\framework\system\CLI\Console.php on line 29
排查修复方案
  • 先明确根因:错误明确说明spark文件第49行给Console构造方法传入了int类型值1,而非要求的CodeIgniter\CodeIgniter实例,本质是类加载规则、依赖版本或者启动文件被破坏导致的实例化失败。
  • 检查qr-code安装方式:如果是直接从GitHub下载源码手动引入qr-code库,立刻删除手动添加的qr-code相关文件,改用composer执行composer require endroid/qr-code走官方流程安装,手动引入文件很容易破坏CI4的自动加载规则,触发类加载异常。
  • 校验依赖兼容性:执行composer check-platform-reqs检查所有依赖的版本约束是否冲突,重点确认安装qr-code时有没有强制降级/升级codeigniter4/framework、psr/*相关核心依赖,版本不兼容会直接导致核心类实例化失败返回错误状态码。如果存在依赖冲突,安装对应兼容版本的qr-code即可,不要加--ignore-platform-req参数强制忽略版本依赖安装。
  • 重置自动加载与缓存:执行composer dump-autoload重新生成全量类自动加载映射文件,再清空writable/cache目录下的所有缓存文件,排除自动加载缓存错乱导致的类引用异常。
  • 校验启动文件完整性:打开项目根目录的spark文件,核对第49行附近的代码,同版本CI4的原生spark文件这里应该传入已经初始化完成的CodeIgniter实例,如果文件被篡改、或者被旧版本/其他项目的spark文件覆盖,直接替换为当前CI4版本对应的官方原生spark文件即可。
  • 核对PHP运行版本:执行php -v查看当前CLI模式下的PHP版本,确保版本同时满足CI4框架和所安装qr-code版本的最低要求,PHP版本不匹配也会导致类解析失败返回错误状态码。

内容的提问来源于stack exchange,提问作者Fathya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:21:32