Ga naar inhoud

NextPDF compat-legacy installeren

nextpdf/compat-legacy is een Composer-bibliotheek. Die vereist PHP 8.4 of nieuwer en nextpdf/core ^3.0. Installeer de bibliotheek om een compatibiliteitsklasse toe te voegen waarnaar je kunt overschakelen; je bestaande TCPDF-aanroepen blijven ongewijzigd.

AfhankelijkheidVersieGezaghebbende bron
PHP>=8.4 <9.0pakket composer.jsonrequire.php
nextpdf/core^3.0pakket composer.jsonrequire
Composer2.7 of nieuwerbasislijn van de toolchain

Het pakket levert een eigen testsuite mee en haalt PHPStan Level 10 zonder basislijn. Bij runtime vereist het PHP 8.4. De bredere NextPDF-engine ondersteunt PHP 8.1 tot en met 8.4 op de backportlijn, maar deze adapter stelt PHP 8.4 als ondergrens in.

Gebruik Composer om het pakket toe te voegen:

Terminal window
composer require nextpdf/compat-legacy:^3.0

Composer lost nextpdf/core ^3.0 op als transitieve afhankelijkheid. De basisfunctionaliteit vereist geen andere runtime-extensie.

De pakketmetadata accepteert ook de historische naam nextpdf/compat-tcpdf via een replace-vermelding in Composer. Nieuwe installaties moeten nextpdf/compat-legacy, de canonieke pakketnaam.

Bevestig na de installatie dat de adapterklasse laadt en dat de koppeling met de engine wordt opgelost. De volgende controle maakt volledig in het geheugen een Portable Document Format (PDF) van één pagina en verifieert de PDF-header. Daarmee wordt hetzelfde API-oppervlak getest als de pakkettest tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php verifieert.

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";

Voer het uit:

Terminal window
php examples/install-verify.php

De verwachte uitvoer is één enkele OK:-regel. Een %PDF-prefix op de teruggegeven tekenreeks bevestigt dat de adapter een NextPDF\Core\Document heeft geconstrueerd, de pagina- en tekstaanroepen heeft gedelegeerd en geldige PDF 2.0-uitvoer heeft geserialiseerd.

De adapter vereist nextpdf/core ^3.0. Bevestig de versie die Composer heeft opgelost:

Terminal window
composer show nextpdf/core --format=json

Als Composer een core-versie buiten ^3.0 heeft opgelost, faalt de adapter direct tijdens de constructie in plaats van onjuiste uitvoer te produceren. Pin de engine expliciet vast in je composer.json als je project er ook rechtstreeks van afhangt.

Als je codebase new \TCPDF(...) in de globale namespace aanroept en je die use-/require-regels nog niet kunt wijzigen, kan het pakket globale aliassen registreren. Dit gedrag is opt-in en wordt beschreven in /integrations/tcpdf-compat/boot-and-discovery/. Schakel het niet in als de echte TCPDF-bibliotheek ook in hetzelfde proces is geïnstalleerd; zie /integrations/tcpdf-compat/troubleshooting/ voor de regel om conflicten te vermijden.

  • Het wijzigt of verwijdert geen bestaande TCPDF-afhankelijkheid. Verwijder tecnickcom/tcpdf alleen als bewuste vervolgstap in /integrations/tcpdf-compat/migration/.
  • Het schakelt geen digitale handtekeningen of PDF/A in. Die functies vereisen een commerciële NextPDF-editie (zie /integrations/tcpdf-compat/security-and-operations/).
  • Het verandert niets aan de doel-PDF-uitvoer. De uitvoer is altijd PDF 2.0.
  • /integrations/tcpdf-compat/quickstart/ — maak je eerste echte document.
  • /integrations/tcpdf-compat/configuration/ — configureer de strikte modus en de adapter.
  • /integrations/tcpdf-compat/migration/ — gebruik de bestand-voor-bestand-migratiestrategie.
  • /integrations/tcpdf-compat/method-coverage/ — bekijk precies wat elke TCPDF-methode hier doet.
  • Pakket composer.json — de gezaghebbende afhankelijkheidsbeperkingen
  • docs/TCPDF_COVERAGE.md — de gezaghebbende dekkingsmatrix (in de repository)