未找到 mPDF class

mPDF class not found

此代码直接取自 mPDF 手册,导致错误

Fatal error: Uncaught Error: Class 'Mpdf\Config\ConfigVariables' not found in /HW.php:4 Stack trace: #0 {main} thrown in /HW.php on line 4


有人可以帮忙吗?

<?php
error_reporting(E_ALL); ini_set('display_errors', '1');
require_once __DIR__ . "/vendor/autoload.php";
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];

$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];

$mpdf = new \Mpdf\Mpdf([
    'fontDir' => array_merge($fontDirs, [
        __DIR__ . '/vendor/mpdf/mpdf/extrafonts/Open_Sans/',
    ]),
    'fontdata' => $fontData + [
        'open_sans' => [
            'R' => 'OpenSans-Regular.ttf',
            'I' => 'OpenSans-Italic.ttf',
            'B' => 'OpenSans-Bold.ttf',
        ]
    ],
    'default_font' => 'open_sans'
]);
?>

这个错误原来是由 MacOSX 缺少 PHP 版本 7 引起的。在缺少版本 7 的情况下,Composer 安装了与 PHP 5.5 兼容的 mPDF 版本 6,这是 MacOSX 拥有的(在至少在 v 10.10.5 中,这是我所拥有的)。我上面发布的代码需要 mPDF 版本 7,因此在与 mPDF 版本 6 一起使用时会导致错误。在 MacOSX 上安装 PHP 7 的所谓解决方案称为 php_osx,但到目前为止我还没有成功它在我的机器上工作(参见 this post)。

我现在的解决方案是坚持使用 mPDF 版本 6 并相应地调整代码(mPDF 版本 6 手册仍在使用 here)。