Laravel项目中DomPDF提示已废弃的原因排查咨询
Laravel 中 DomPDF 触发废弃提示的原因及修复
- 第一类原因:手动注册的类引用过时。如果你在
config/app.php里手动添加 DomPDF 的服务提供者、门面别名时用了旧版本的类路径,就会直接触发废弃标记。Laravel 8 之后的barryvdh/laravel-dompdf适配包已经调整了门面和服务提供者的命名空间,旧的Barryvdh\DomPDF\Facade根类路径已经废弃。 - 第二类原因:版本不兼容。Laravel 10/11 要求 DomPDF 版本至少为 2.x 分支,如果安装时锁了 1.x 版本,DomPDF 内部调用的框架接口、PHP 语法特性在新版本框架中已经被废弃,运行时就会抛出提示。
- 第三类原因:调用了废弃方法。旧版本里的无参
loadFile()、未初始化配置直接调用render()、setPaper()传参顺序错误等写法,在 2.x 版本中都已经被标记为废弃。
修复步骤
- 先移除现有冲突版本:
composer remove barryvdh/laravel-dompdf dompdf/dompdf - 重新安装适配当前框架的稳定版本:
composer require barryvdh/laravel-dompdf
注意:Laravel 11 版本安装后不需要手动修改
config/app.php添加配置,包会自动完成服务注册;Laravel 9 及以下版本如果需要手动注册,服务提供者请填Barryvdh\DomPDF\ServiceProvider::class,门面别名请填'PDF' => Barryvdh\DomPDF\Facade\Pdf::class,不要使用旧的类路径。
- 修正代码中的废弃写法:
- 把文件头部的门面引用从
use PDF;替换为use Barryvdh\DomPDF\Facade\Pdf; - 所有静态调用把
PDF::xxx()统一改成Pdf::xxx() - 自定义配置不要直接修改包内文件,执行
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"发布配置文件到config目录后再修改
- 把文件头部的门面引用从
- 清除缓存生效:
php artisan config:clear && php artisan cache:clear
如果操作完成后仍有废弃提示,执行 composer why dompdf/dompdf 排查是否有其他第三方包依赖了低版本 DomPDF,升级对应依赖包即可。
内容的提问来源于stack exchange,提问作者slvhxia
相关产品推荐
相关产品推荐

