执行composer update后出现HtmlDumper::setDumpHeader参数类型错误如何解决
错误原因
该报错是maximebf/debugbar扩展包与高版本symfony/var-dumper组件不兼容导致的:symfony/var-dumper v5.1及以上版本调整了setDumpHeader()方法的参数类型约束,要求必须传入字符串类型,而旧版debugbar调用该方法时可能传入null值,composer update升级依赖后就会触发该报错。
Argument 1 passed to Symfony\Component\VarDumper\Dumper\HtmlDumper::setDumpHeader() must be of the type string, null given, called in /home/vagrant/code/aggregation/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DebugBarVarDumper.php on line 288
修复方案
- 方案一(推荐):升级
maximebf/debugbar到兼容版本。执行以下命令即可:
1.18及以上版本的debugbar已经官方修复了该兼容问题,升级后即可正常运行。composer require maximebf/debugbar:^1.18 - 方案二:如果项目有其他依赖限制无法升级debugbar,可以锁定
symfony/var-dumper到兼容的旧版本。在composer.json的require节点新增如下配置:
保存后执行"symfony/var-dumper": "<5.1"composer update symfony/var-dumper降级组件即可。 - 方案三(临时紧急修复,不推荐长期使用):直接修改报错文件兜底null值。打开
vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DebugBarVarDumper.php找到第288行,将原调用代码修改为:
该修改仅临时生效,后续执行composer install/update时会被vendor目录的更新覆盖。$dumper->setDumpHeader($this->dumpHeader ?? '');
内容的提问来源于stack exchange,提问作者Yevgeniy Afanasyev
相关产品推荐
相关产品推荐

