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

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 版本中都已经被标记为废弃。

修复步骤

  1. 先移除现有冲突版本:
    composer remove barryvdh/laravel-dompdf dompdf/dompdf
  2. 重新安装适配当前框架的稳定版本:
    composer require barryvdh/laravel-dompdf

注意:Laravel 11 版本安装后不需要手动修改 config/app.php 添加配置,包会自动完成服务注册;Laravel 9 及以下版本如果需要手动注册,服务提供者请填 Barryvdh\DomPDF\ServiceProvider::class,门面别名请填 'PDF' => Barryvdh\DomPDF\Facade\Pdf::class,不要使用旧的类路径。

  1. 修正代码中的废弃写法:
    • 把文件头部的门面引用从 use PDF; 替换为 use Barryvdh\DomPDF\Facade\Pdf;
    • 所有静态调用把 PDF::xxx() 统一改成 Pdf::xxx()
    • 自定义配置不要直接修改包内文件,执行 php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider" 发布配置文件到config目录后再修改
  2. 清除缓存生效:
    php artisan config:clear && php artisan cache:clear

如果操作完成后仍有废弃提示,执行 composer why dompdf/dompdf 排查是否有其他第三方包依赖了低版本 DomPDF,升级对应依赖包即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:54:38