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

PHP致命错误:Mpdf\Mpdf类未找到问题求助

解决PHP Fatal Error: Class "Mpdf\Mpdf" not found的问题

咱们一步步拆解你遇到的问题,核心有三个关键点:自动加载路径错误、命名空间版本不匹配、PHP与Mpdf的兼容性冲突,下面逐个说明:

1. 自动加载文件路径错误

你当前代码里引入的是pdf/autoload.php,但通过Composer安装mpdf/mpdf后,正确的自动加载入口应该是Composer统一生成的vendor/autoload.php。除非你手动把mpdf的文件移到了pdf目录,否则这个路径根本找不到对应的文件。

修复方法:把引入代码改成:

require_once __DIR__ . '/vendor/autoload.php';

注意要确保你的pdf.php和vendor目录在同级(也就是C:\xampp\htdocs\server目录下能看到vendor文件夹)。

2. Mpdf版本与命名空间不匹配

你安装的是mpdf/mpdf v6.1.2,这个版本没有使用\Mpdf命名空间——Mpdf类直接在全局命名空间下。而\Mpdf\Mpdf这种写法是mpdf 7.x及以上版本才支持的命名空间规范。

修复方法:把实例化代码改成:

$mpdf = new Mpdf(); // 去掉前面的\Mpdf\前缀

3. PHP版本与Mpdf版本兼容性问题

你用的是PHP 8.1.3,但mpdf 6.x版本的官方要求是PHP 5.4到PHP 7.0,完全不支持PHP 8.x。就算你解决了前面两个问题,后续大概率还会出现语法报错、函数废弃等兼容性问题。

推荐解决方法:升级mpdf到支持PHP8.x的版本(比如最新的8.x系列),执行以下Composer命令:

composer require mpdf/mpdf "^8.0"

升级后,你原来的new \Mpdf\Mpdf;写法就可以正常使用了,记得保持引入vendor/autoload.php。

你可能没理解的相关概念

  • Composer自动加载机制:Composer会生成vendor/autoload.php,统一管理所有依赖包的类加载,不需要手动引入每个包的autoload文件,只要引入这个文件就能自动加载所有已安装的依赖类。
  • PHP命名空间:不同版本的库可能调整命名空间结构,mpdf从7.x开始引入Mpdf命名空间来规范类的组织,旧版本(6.x)还在使用全局命名空间。
  • 版本兼容性:每个PHP库都有对应的PHP版本支持范围,安装前一定要确认版本匹配,否则会出现各种无法预料的错误。

最后给你两个修复后的完整代码示例:

升级到mpdf 8.x版本(推荐)

<?php
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();

坚持使用mpdf 6.1.2版本(不推荐,PHP版本不兼容)

<?php
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 17:49:05