我正在处理的遗留应用程序使用setLocale(LC_ALL, ["de.utf", "de_DE.utf", "de_DE.UTF-8", "de", "de_DE"])
从html内容生成PDF。我们正在努力将php 5x更新为php 7x,因此我们需要将dompdf
从 0.6.1 更新为 0.8.2 。
我首先在独立文件中测试了0.8.2,它运行正常。
在应用程序中,pdf创建发生在一个函数中,如(但更复杂的IRL):
dompdf
这会针对上述函数中的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_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 0.8.2是否有相对无痛的方法?
答案 0 :(得分: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
已成功执行({1}}以加载autoload.inc.php
。