Mpdf не обновляется до последней версии

#php #mpdf

#php #mpdf

Вопрос:

Моя проблема

Я пытаюсь создать PDF-файл с помощью MPDF, но после того, как я установил mpdf, я получаю следующую ошибку о том, что он использует ограниченные фигурные скобки. Это связано с тем, что php не поддерживает фигурные скобки вместо фигурных скобок для указания индекса начиная с 8.0.0.

Что я пробовал

  • измените фигурные скобки на скобки, но это полностью сломало библиотеку

Ошибки, которые я получаю после исправления устаревших фигурных скобок, следующие:

 Warning: A non-numeric value encountered in C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php on line 30572

Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, string given in C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfclassesttfontsuni.php:613 Stack trace: #0 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfclassesttfontsuni.php(202): TTFontFile->extractInfo(false, true, 0) #1 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(3880): TTFontFile->getMetrics('C:/xampp/htdocs...', 'dejavuserifcond...', 0, false, true, 0) #2 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(4246): mPDF->AddFont('dejavuserifcond...', '') #3 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(13621): mPDF->SetFont('dejavuserifcond...') #4 C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfmpdf.php(1287): mPDF->SetDefaultFont('serif') #5 C:xampphtdocsbackendJaar2Project_webshopLibrarypdf_genereren.php(8): mPDF->__construct() #6 {main} thrown in C:xampphtdocsbackendJaar2Project_webshopLibraryvendormpdfmpdfclassesttfontsuni.php on line 613
 
  • дважды переустановил библиотеку, один раз переустановил composer
  • Обновитесь до последней стабильной версии php (8.0.1)
 <?php
ob_clean();
ob_start();

$rapport = ob_get_clean();
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new mPDF();
$mpdf->showImageErrors = true;
$mpdf->WriteHTML("<h1>Hello world..</h1>");
$mpdf->Output();
?>
 

Ответ №1:

Обновление: mPDF поддерживается на PHP 8 начиная с версии 8.0.10, нет необходимости использовать выделенную ветку.


Получилось, потому что php8 еще не поддерживается в mpdf. Мне пришлось установить пользовательскую версию mpdf, выполнив composer require mpdf/mpdf dev-php8-support , и это устранило все проблемы.