Установка NextPDF compat-legacy
nextpdf/compat-legacy — библиотека Composer. Для неё нужны PHP 8.4 или новее и nextpdf/core ^3.0. Установите её, чтобы добавить класс совместимости, на который можно перейти; существующие вызовы TCPDF останутся без изменений.
Требования
Заголовок раздела «Требования»| Зависимость | Версия | Авторитетный источник |
|---|---|---|
| PHP | >=8.4 <9.0 | пакет composer.jsonrequire.php |
nextpdf/core | ^3.0 | пакет composer.jsonrequire |
| Composer (менеджер пакетов) | 2.7 или новее | базовый уровень инструментария |
Пакет включает собственный набор тестов и заявляет PHPStan Level 10 без baseline-файла. Для выполнения ему требуется PHP 8.4. Движок NextPDF в целом поддерживает PHP 8.1—8.4 в ветке бэкпортов, но у этого адаптера нижняя граница — PHP 8.4.
Установка
Заголовок раздела «Установка»Добавьте пакет с помощью Composer:
composer require nextpdf/compat-legacy:^3.0Composer разрешает nextpdf/core ^3.0 как транзитивную зависимость. Для базового набора возможностей не нужны другие расширения среды выполнения.
В метаданных пакета историческое имя
nextpdf/compat-tcpdfтакже принимается через записьreplaceв Composer. Для новых установок указывайтеnextpdf/compat-legacy— каноническое имя пакета.
Проверка установки
Заголовок раздела «Проверка установки»После установки убедитесь, что класс адаптера загружается, а связь с движком устанавливается. Следующая проверка создаёт одностраничный документ в формате Portable Document Format (PDF) целиком в памяти и проверяет заголовок PDF. Она задействует тот же участок API, который проверяет тест пакета tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php.
<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\TCPDF;
$pdf = new TCPDF('P', 'mm', 'A4');$pdf->AddPage();$pdf->SetFont('helvetica', '', 12);$pdf->Cell(0, 10, 'compat-legacy install verified');
$bytes = $pdf->Output('verify.pdf', 'S');
if (! str_starts_with($bytes, '%PDF')) { fwrite(STDERR, "Install check failed: output is not a PDF.\n"); exit(1);}
echo "OK: adapter loaded, engine linked, PDF produced (" . strlen($bytes) . " bytes).\n";Запустите её:
php examples/install-verify.phpОжидаемый вывод — одна строка OK:. Префикс %PDF в возвращённой строке подтверждает, что адаптер построил NextPDF\Core\Document, делегировал вызовы страницы и текста и сериализовал корректный вывод PDF 2.0.
Проверка версии движка
Заголовок раздела «Проверка версии движка»Адаптеру требуется nextpdf/core ^3.0. Проверьте версию, которую разрешил Composer:
composer show nextpdf/core --format=jsonЕсли Composer разрешил версию ядра за пределами ^3.0, адаптер сразу завершится с ошибкой при создании объекта, а не будет выдавать неверный вывод. Явно закрепите версию движка в своём composer.json, если ваш проект зависит от него напрямую.
Дополнительно: глобальные псевдонимы классов
Заголовок раздела «Дополнительно: глобальные псевдонимы классов»Если ваша кодовая база вызывает new \TCPDF(...) в глобальном пространстве имён и вы пока не можете изменить эти инструкции use/require, пакет может зарегистрировать глобальные псевдонимы. Это поведение включается явно и описано в /integrations/tcpdf-compat/boot-and-discovery/. Не включайте его, если в том же процессе также установлена настоящая библиотека TCPDF; правило предотвращения конфликтов см. в /integrations/tcpdf-compat/troubleshooting/.
Чего установка не делает
Заголовок раздела «Чего установка не делает»- Она не изменяет и не удаляет существующую зависимость TCPDF. Удаляйте
tecnickcom/tcpdfтолько как последующий осознанный шаг в /integrations/tcpdf-compat/migration/. - Она не активирует цифровые подписи или PDF/A. Эти возможности требуют коммерческой редакции NextPDF (см. /integrations/tcpdf-compat/security-and-operations/).
- Она не меняет целевой формат вывода PDF. Вывод всегда соответствует PDF 2.0.
Дальнейшие шаги
Заголовок раздела «Дальнейшие шаги»- /integrations/tcpdf-compat/quickstart/ — создайте первый полноценный документ.
- /integrations/tcpdf-compat/configuration/ — настройте строгий режим и адаптер.
- /integrations/tcpdf-compat/migration/ — используйте стратегию пофайловой миграции.
- /integrations/tcpdf-compat/method-coverage/ — узнайте, что именно делает здесь каждый метод TCPDF.
См. также
Заголовок раздела «См. также»- Пакетный
composer.json— авторитетный источник ограничений зависимостей docs/TCPDF_COVERAGE.md— авторитетная матрица покрытия (в репозитории)