dompdf 0.8.2生成PHP错误:“未捕获错误:未找到类'Dompdf'”

问题描述 投票:1回答:1

我正在使用的遗留应用程序使用dompdf从html内容生成PDF。我们正在努力将php 5x更新为php 7x,因此我们需要将dompdf从0.6.1更新为0.8.2。

我首先在独立文件中测试了0.8.2,它工作正常。

在应用程序中,pdf创建发生在一个函数中,就像这样(但更复杂的IRL):

function createPDF($html,$filename,$paper,$orientation)
{
    require_once("static/dompdf_0.8.2/autoload.inc.php");
    use Dompdf\Dompdf;
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    $dompdf->setPaper($paper, $orientation);
    $dompdf->render();
    $dompdf->stream($filename);
    return true;
}

这导致PHP Parse error: syntax error, unexpected 'use' (T_USE)对照上述函数中的use Dompdf\Dompdf线。

我尝试移动require并在函数外部使用行(再次简化)

require_once("static/dompdf_0.8.2/autoload.inc.php");
use Dompdf\Dompdf;

function createPDF($html,$filename,$paper,$orientation)
{
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    $dompdf->setPaper($paper, $orientation);
    $dompdf->render();
    $dompdf->stream($filename);
    return true;
}

这现在在PHP Fatal error: Uncaught Error: Class 'Dompdf' not found线上生成$dompdf = new Dompdf();

是否有一种相对无痛的方法让dompdf 0.8.2在函数内工作?

php dompdf
1个回答
3
投票

你的代码应该工作:

require_once 'static/dompdf_0.8.2/src/autoload.inc.php';
use Dompdf\Dompdf;

function createPDF($html,$filename,$paper,$orientation)
{
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    $dompdf->setPaper($paper, $orientation);
    $dompdf->render();
    $dompdf->stream($filename);
    return true;
}

确保执行(成功)require_once以加载autoload.inc.php

© www.soinside.com 2019 - 2024. All rights reserved.