Migrare da TCPDF
Questa guida accompagna la migrazione di un progetto esistente da TCPDF legacy (tecnickcom/tcpdf) a TCPDF-Next. TCPDF-Next è una riscrittura completa e non un sostituto drop-in, ma il processo migrazione è sistematico e ben definito.
Differenze Chiave
| Funzionalità | TCPDF (Legacy) | TCPDF-Next |
|---|---|---|
| Versione PHP | 5.3+ | 8.5+ |
| Versione PDF | PDF 1.7 | PDF 2.0 |
| Architettura | Singola classe monolitica (~27.000 righe) | 17 namespace modulari, 142 classi |
| Stile API | Procedurale, metodi PascalCase | Builder fluent, metodi camelCase |
| Type safety | Nessun tipo | declare(strict_types=1), enum, readonly |
| Analisi statica | Nessuna | PHPStan Level 10, zero errori |
| Crittografia | RC4, AES-128, AES-256 | Solo AES-256 (PDF 2.0 Revision 6) |
| Firme | PKCS#7 base | PAdES da B-B a B-LTA |
| PDF/A | PDF/A-1b (parziale) | PDF/A-4 (ISO 19005-4 completo) |
Mapping API: Metodo Vecchio a Nuovo
| TCPDF Legacy | TCPDF-Next | Note |
|---|---|---|
new TCPDF() | Document::create() | Builder fluent, parametri nominati |
$pdf->Cell() | $pdf->cell() | camelCase |
$pdf->MultiCell() | $pdf->multiCell() | camelCase |
$pdf->SetFont() | $pdf->setFont() | camelCase |
$pdf->Output('file.pdf', 'F') | $pdf->save('file.pdf') | Metodo esplicito |
Checklist Breaking Changes
- [ ] PHP 8.5+ richiesto — Aggiorna runtime PHP
- [ ] Cambio namespace — Sostituisci riferimenti classe
TCPDFcon namespaceYeeeFang\TcpdfNext\... - [ ] Metodi camelCase —
SetFont()diventasetFont(),MultiCell()diventamultiCell() - [ ] Costruttore sostituito —
new TCPDF(...)diventaPdfDocument::create()->...->build() - [ ] Formato font cambiato — Sostituisci file font binari TCPDF (
.php+.z) con file TTF/OTF originali - [ ] Upgrade crittografia — RC4 e AES-128 sono rimossi. Migra ad AES-256
- [ ] Array colori — Sostituisci array
[255, 0, 0]conColor::rgb(255, 0, 0)
Riferimenti
- Tabella API Mapping — Mapping metodo-per-metodo completo
- Panoramica Sicurezza — Fix CVE affrontati nella migrazione