Я знаю, что этот вопрос задавался раньше, но я не понял, как его решить. Например, это DOMPDF, я не могу одновременно создать два PDF-файла занимается одной и той же темой. Я пытался следовать решению, но пока не так хорошо. У меня есть цикл, в котором я хочу создать два файла PDF (два счета). Случай 1 работает только с 1 циклом, во время другого цикла он зависает (Невозможно повторно объявить DOMPDF_autoload() (ранее объявленный в /vendor/dompdf/include/autoload.inc.php в строке 24). Варианты 2 и 3, которые у меня есть пытался применить из приведенного выше вопроса stackoverflow, вообще не работает (некоторые ошибки времени выполнения, синтаксические ошибки, которые я не могу понять).
Это мой код:
$invoices = 2;
$invoice_names = array();
for ($i=1; $i<=$invoices; $i++)
{
$invoice_file_name = 'invoice' .$i. '.pdf';
$invoice_names[] = $invoice_file_name;
require '../vendor/dompdf/include/autoload.inc.php';
// disable DOMPDF's internal autoloader if you are using Composer
define('DOMPDF_ENABLE_AUTOLOAD', false);
// include DOMPDF's default configuration
require_once '../vendor/dompdf/dompdf_config.inc.php';
$htmlString = '';
ob_start();
// This creates html format of an invoice
include('pdf_laskupohja_vanha.php');
$htmlString .= ob_get_clean();
// Case 1 working for the 1. loop
$dompdf = new DOMPDF();
$dompdf->load_html($htmlString);
$dompdf->render();
$output = $dompdf->output();
/* Case 2
$view = $dompdf->load->view("viewname", $htmlString, true);
//create a new dompdf instance
$dompdf->pdf = new DOMPDF();
//render and output pdf
$dompdf->pdf->load_html($view);
$dompdf->pdf->render();
$output = $dompdf->pdf->output(array("compress" => 0));
*/
/* Case 3
$dompdf->load->library('pdf');
$dompdf = new DOMPDF();
$dompdf->set_base_path(['path']);
//create a new dompdf instance (this is the crucial step)
$dompdf->load_view('viewname', $htmlString);
$dompdf->render();
$output = $dompdf->output();
*/
file_put_contents('../invoices/' .$invoice_file_name, $output);
}
echo "Invoice(es) OK";
Есть ли «скрытый» способ их реализации (случай 2 и 3), которые не показаны напрямую? Вероятно, включая некоторую модификацию dompdf_config.inc.php или класса DOMPDF. Дело в том, что я не совсем понимаю структуру классов php. Вероятно, основное решение состоит в том, чтобы стереть объект класса предыдущего цикла и создать еще один, но как? Поверьте мне, я боролся с этим уже несколько дней.