Przejdź do głównej zawartości

Instalacja warstwy zgodności compat-legacy NextPDF

nextpdf/compat-legacy to pakiet Composera. Wymaga PHP 8.4 lub nowszego oraz nextpdf/core ^3.0. Zainstaluj go, aby dodać klasę zgodności, na którą można się przełączyć; istniejące wywołania TCPDF pozostają bez zmian.

ZależnośćWersjaŹródło miarodajne
PHP>=8.4 <9.0pakietu composer.jsonrequire.php
nextpdf/core^3.0pakietu composer.jsonrequire
Composer2.7 lub nowszybazowy zestaw narzędzi

Pakiet dostarcza własny zestaw testów i deklaruje PHPStan Level 10 bez pliku bazowego. Do działania wymaga PHP 8.4. Silnik NextPDF jako całość obsługuje PHP od 8.1 do 8.4 w linii backportu, ale ten adapter ustala PHP 8.4 jako dolną granicę.

Użyj Composera, aby dodać pakiet:

Okno terminala
composer require nextpdf/compat-legacy:^3.0

Composer rozwiązuje nextpdf/core ^3.0 jako zależność przechodnią. Podstawowe funkcje nie wymagają żadnego dodatkowego rozszerzenia środowiska uruchomieniowego.

Metadane pakietu akceptują również historyczną nazwę nextpdf/compat-tcpdf przez wpis replace w Composerze. W nowych instalacjach należy wymagać nextpdf/compat-legacy, czyli kanonicznej nazwy pakietu.

Po instalacji potwierdź, że klasa adaptera ładuje się poprawnie, a powiązanie z silnikiem jest rozwiązywane. Poniższe sprawdzenie tworzy jednostronicowy plik w formacie Portable Document Format (PDF) w całości w pamięci i weryfikuje nagłówek PDF. Korzysta z tego samego zakresu API, który weryfikuje test pakietu tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php.

examples/install-verify.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";

Uruchom skrypt:

Okno terminala
php examples/install-verify.php

Oczekiwany wynik to pojedynczy wiersz OK:. Prefiks %PDF w zwróconym łańcuchu znaków potwierdza, że adapter utworzył NextPDF\Core\Document, przekazał wywołania strony i tekstu oraz wygenerował prawidłowy wynik PDF 2.0.

Adapter wymaga nextpdf/core ^3.0. Potwierdź wersję wybraną przez Composera:

Okno terminala
composer show nextpdf/core --format=json

Jeśli Composer wybierze wersję rdzenia spoza ^3.0, adapter natychmiast zgłosi błąd podczas konstruowania obiektu, zamiast generować nieprawidłowy wynik. Jawnie przypnij silnik w pliku composer.json, jeśli projekt również zależy od niego bezpośrednio.

Jeśli baza kodu wywołuje new \TCPDF(...) w globalnej przestrzeni nazw i nie możesz jeszcze zmienić tych wierszy use/require, pakiet może zarejestrować globalne aliasy. Jest to zachowanie opcjonalne, opisane w /integrations/tcpdf-compat/boot-and-discovery/. Nie włączaj go, jeśli w tym samym procesie zainstalowana jest również właściwa biblioteka TCPDF; regułę unikania konfliktów opisano w /integrations/tcpdf-compat/troubleshooting/.

  • Nie modyfikuje ani nie usuwa istniejącej zależności TCPDF. tecnickcom/tcpdf usuwaj wyłącznie w ramach celowego, późniejszego kroku opisanego w /integrations/tcpdf-compat/migration/.
  • Nie włącza podpisów cyfrowych ani PDF/A. Te funkcje wymagają komercyjnej edycji NextPDF (zobacz /integrations/tcpdf-compat/security-and-operations/).
  • Nie zmienia docelowego formatu wyjściowego PDF. Wynikiem jest zawsze PDF 2.0.
  • /integrations/tcpdf-compat/quickstart/ — utwórz pierwszy prawdziwy dokument.
  • /integrations/tcpdf-compat/configuration/ — skonfiguruj tryb ścisły i adapter.
  • /integrations/tcpdf-compat/migration/ — zastosuj strategię migracji plik po pliku.
  • /integrations/tcpdf-compat/method-coverage/ — sprawdź szczegółowo, co robi tutaj każda metoda TCPDF.
  • Plik composer.json pakietu — miarodajne ograniczenia zależności
  • docs/TCPDF_COVERAGE.md — miarodajna macierz pokrycia (w repozytorium)