TCPDF-compatibiliteit ontwikkelaarsgids
In het kort
Sectie met titel “In het kort”De compatibiliteitsadapter is een migratielaag. Hij maakt verouderd gedrag zichtbaar in plaats van het te verbergen. Gebruik hem om uw applicatie draaiende te houden terwijl u waardevolle paden verplaatst naar de native NextPDF-API’s.
Gebruik deze gids wanneer u verouderde, TCPDF-vormige code onderhoudt, adapterdekking toevoegt of een gefaseerde migratie naar de native NextPDF-API’s plant.
Architectuurgrens
Sectie met titel “Architectuurgrens”| Laag | Eigenaar | Verantwoordelijkheid | Plaats hier niet |
|---|---|---|---|
| Verouderde applicatie | Applicatie | Houd bestaande TCPDF-vormige aanroepen draaiende tijdens de migratie. | Nieuwe PDF-functies die de native NextPDF-API’s zouden moeten gebruiken. |
| Adapterschil | nextpdf/compat-legacy | Stel de TCPDF-vormige klasse en gedeelde compatibiliteitsstatus beschikbaar. | Grote methodefamilies of conversielogica. |
| Concern-traits | nextpdf/compat-legacy | Groepeer verouderde methodefamilies: tekst, lettertypen, afbeeldingen, beveiliging, formulieren, pagina’s. | Uitvoerbeleid dat meerdere families overstijgt. |
| Bridge-klassen | nextpdf/compat-legacy | Converteer verouderde argumenten, bestemmingen, kleuren, eenheden en formaten. | Bedrijfsspecifiek gedrag. |
| Kern-engine | nextpdf/nextpdf | Maak het native document aan. | Beloften over verouderde compatibiliteit. |
Runtime-levenscyclus
Sectie met titel “Runtime-levenscyclus”| Fase | Gedrag | Actie van de ontwikkelaar |
|---|---|---|
| Bootstrap | Een optionele verouderde bootstrap stelt compatibiliteitsnamen beschikbaar. | Gebruik deze alleen waar verouderde code TCPDF-symbolen verwacht. |
| Constructie | De adapter wijst verouderde constructorargumenten toe aan de configuratie van het kerndocument. | Houd de constructorinvoer stabiel tijdens de migratie. |
| Methode-aanroep | Ondersteunde methoden worden via concerns en bridges toegewezen aan NextPDF-gedrag. | Controleer de methodedekking voordat u pariteit veronderstelt. |
| Niet-ondersteunde functie | De adapter werpt expliciete compatibiliteitsuitzonderingen voor niet-ondersteund gedrag. | Vervang de aanroep of isoleer hem achter applicatiecode. |
| Uitvoer | De uitvoerbridge wijst verouderd bestemmingsgedrag toe aan NextPDF-uitvoer. | Valideer bestandsnamen en opslagwortels. |
Migratie-inventaris
Sectie met titel “Migratie-inventaris”Begin met het verzamelen van elke TCPDF-methode-aanroep in uw applicatie. Classificeer elke aanroep voordat u het gedrag wijzigt.
| Classificatie | Betekenis | Actie |
|---|---|---|
| Ondersteunde adaptermethode | De methode is gedocumenteerd als ondersteund en heeft tests. | Behoud hem tijdelijk en migreer wanneer u dit gebied aanraakt. |
| Gedeeltelijk ondersteunde adaptermethode | De methode bestaat, maar het gedrag komt niet volledig overeen met verouderde TCPDF. | Voeg fixture-tests toe en valideer de uitvoer handmatig. |
| Expliciet niet-ondersteunde methode | De adapter werpt een compatibiliteitsuitzondering. | Vervang hem door native NextPDF of verwijder de functie. |
| Bedrijfsspecifieke wrapper | De applicatie verpakt TCPDF-aanroepen al. | Migreer eerst de interne werking van de wrapper. |
| Compliance-gevoelige aanroep | Handtekening, versleuteling, tagging, PDF/A, toegankelijkheid of factuurstroom. | Migreer naar de native NextPDF-API’s met specifieke verificatie. |
Patroon voor adapterbijdragen
Sectie met titel “Patroon voor adapterbijdragen”Voeg compatibiliteitsondersteuning toe in de kleinste methodefamilie die dat gedrag bezit.
| Type wijziging | Waar te implementeren | Vereiste test |
|---|---|---|
| Methode voor tekstuitvoer | Concerns\AdaptsTextOutput of de lettertype-concern. | Verouderde fixture plus assertie op native uitvoer. |
| Methode voor pagina of marge | Concern voor pagina, positionering of marge. | Test voor coördinaatconversie en paginastatus. |
| Methode voor afbeelding of tekening | Concern voor afbeelding, tekening, kleur of verloop. | Test voor invoervalidatie en visual/structural uitvoer. |
| Uitvoerbestemming | OutputBridge. | Test voor bestemmingstoewijzing en onveilig pad. |
| Niet-ondersteunde functie | Uitzonderingsfactory of tabel met methodedekking. | Test voor uitzonderingstype en -bericht. |
Plaats geen grote methode rechtstreeks in het adapterschil wanneer een concern-trait de familie bezit.
Native migratiepatroon
Sectie met titel “Native migratiepatroon”Gebruik de adapter om verouderde code te stabiliseren en verplaats stabiele workflows vervolgens naar de native API’s.
<?php
// Temporary compatibility code.$pdf = new \NextPDF\Compat\Tcpdf\TCPDF();$pdf->AddPage();$pdf->SetFont('dejavusans', '', 12);$pdf->Cell(0, 10, 'Invoice 1234');
// Target native shape.$document = \NextPDF\Core\Document::createStandalone();$document->addPage() ->setFont('dejavusans', '', 12) ->cell(0, 10, 'Invoice 1234');Beschouw migratie als een reeks kleine gedragsmatige stappen. Een pagina kan de adapter blijven gebruiken terwijl één sectie met hoog risico naar de native API’s verhuist.
Uitbreidingspunten
Sectie met titel “Uitbreidingspunten”| Uitbreidingspunt | Gebruik het voor | Beperking |
|---|---|---|
AdaptationConfig | Beheer het adaptergedrag tijdens de migratie. | Houd standaardwaarden expliciet en gecontroleerd. |
| Concern-traits | Groepeer methodefamilies zoals tekst, formulieren, afbeeldingen of beveiliging. | Voeg methoden toe aan de juiste concern, niet aan het adapterschil. |
| Bridge-klassen | Converteer verouderde argumentvormen naar kernwaarden. | Dek bridge-gedrag af met migratietests. |
CompatAdapterInterface | Abstractie op adapterniveau voor tooling. | Gebruik dit niet als vervanging voor native kerncontracten in nieuwe code. |
| Tabel met methodedekking | Ondersteuningsregister voor ontwikkelaars. | Werk het bij wanneer de ondersteuningsstatus verandert. |
Migratieworkflow
Sectie met titel “Migratieworkflow”- Installeer de adapter en draai de verouderde testsuite ongewijzigd.
- Open methodedekking en classificeer elke aangeroepen methode.
- Vervang eerst de niet-ondersteunde methoden.
- Verplaats paden met hoog volume of compliance-gevoelige paden naar de native kern-API’s.
- Voeg fixture-dekking toe voor elke gemigreerde methodefamilie.
- Verwijder bootstrap-aliassen wanneer geen enkel applicatie-entrypoint ervan afhankelijk is.
Foutafhandeling
Sectie met titel “Foutafhandeling”| Fout | Waar deze moet worden afgehandeld | Aanbevolen respons |
|---|---|---|
| Niet-ondersteunde methode | Adapteruitzondering. | Vervang de aanroep of isoleer hem achter een applicatieadapter. |
| Gedeeltelijke lay-outpariteit | Migratietests en visuele controle. | Documenteer het geaccepteerde verschil vóór de uitrol. |
| Onveilige uitvoerbestemming | OutputBridge en het opslagbeleid van de applicatie. | Weiger onveilige paden en geef de voorkeur aan native uitvoer-API’s. |
| Mismatch in beveiligingsfunctie | Native migratieplan. | Lever geen alleen-compatibiliteitsgedrag voor gereguleerde uitvoer. |
| Botsing van bootstrap-aliassen | Applicatie-bootstrap. | Verwijder globale aliassen of beperk hun bereik tot verouderde entrypoints. |
Veilige standaardwaarden
Sectie met titel “Veilige standaardwaarden”| Concern | Standaardwaarde | Wanneer overschrijven |
|---|---|---|
| Niet-ondersteunde methoden | Werp een expliciete uitzondering. | Verzwak dit niet in productie. |
| Verouderde standaardwaarden | Gecentraliseerd in LegacyDefaults. | Overschrijf alleen voor bekend migratiegedrag. |
| Uitvoertoewijzing | Gaat via OutputBridge. | Gebruik na de migratie de native uitvoer-API’s. |
| Bron van dekking | Pagina met methodedekking en tests. | Voer de dekkingscontroles opnieuw uit na elke adapterupgrade. |
| Strikte modus | Houd ingeschakeld tijdens migratie-audits. | Schakel alleen uit voor een gedocumenteerd venster van verouderde compatibiliteit. |
Testchecklist
Sectie met titel “Testchecklist”- Behoud een verouderde fixture voor elke gemigreerde methodefamilie.
- Voeg één native NextPDF-test toe voordat u een verouderde methode vervangt.
- Verifieer dat niet-ondersteunde methoden de gedocumenteerde uitzondering werpen.
- Vergelijk de uitvoerstructuur wanneer exacte byte-gelijkheid geen realistisch migratiedoel is.
- Voer de methodedekkingscontroles uit nadat u adaptermethoden toevoegt of wijzigt.
- Voeg opslagpadtests toe voor elke uitvoerbestemming die verouderde code gebruikt.