【发布时间】:2021-01-10 23:55:52
【问题描述】:
我正在开发的旧版应用程序使用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;
}
这会针对上述函数中的use Dompdf\Dompdf 行生成PHP Parse error: syntax error, unexpected 'use' (T_USE)。
我尝试将 require 和 use 行移到函数之外(再次简化)
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;
}
这会在$dompdf = new Dompdf(); 行上生成PHP Fatal error: Uncaught Error: Class 'Dompdf' not found。
有没有一种相对轻松的方法可以让 dompdf 0.8.2 在函数中工作?
【问题讨论】: