NextPDF — vue d’ensemble de compat-legacy
nextpdf/compat-legacy est une alternative compatible avec TCPDF : une couche de compatibilité qui expose l’API publique de TCPDF 6.x par-dessus le moteur PDF 2.0 de NextPDF. Elle existe pour une seule tâche — permettre à une base de code qui dépend déjà de TCPDF 6.x de s’exécuter sur le moteur NextPDF sans réécriture, afin que la migration puisse avancer fichier par fichier plutôt qu’en une seule fois.
Ce n’est pas un fork de TCPDF, et ce n’est pas présenté comme un clone comportemental garanti. C’est une implémentation indépendante qui conserve les signatures d’appel de TCPDF. La description exacte est la suivante : elle couvre 94 des quelque 120 méthodes TCPDF 6.x recensées par délégation directe, les méthodes restantes présentant des différences comportementales documentées (voir /integrations/tcpdf-compat/method-coverage/).
Ce que c’est
Section intitulée « Ce que c’est »- Une aide à la migration. Le paquet fait partie de la famille compat de NextPDF. Son but est de raccourcir le chemin pour quitter une ancienne bibliothèque PDF, pas de devenir une dépendance permanente. Considère-le comme un échafaudage que tu retires au fur et à mesure que tu adoptes l’API moderne.
- Un adaptateur de surface d’API. Il fournit le nom de classe TCPDF, les noms de méthodes, l’ordre des paramètres et les valeurs par défaut de 6.2.13. Les appels sont délégués à une instance
NextPDF\Core\Document. - Une implémentation indépendante, en salle blanche. Aucun code source de TCPDF, artefact de build, donnée de police de caractères ni autre expression susceptible d’être protégée par le droit d’auteur n’a été copié ni transposé dans ce paquet. Le nom TCPDF est utilisé uniquement aux fins d’identification pour l’interopérabilité. La déclaration de référence figure dans le fichier
NOTICEdu paquet.
Ce que ce n’est pas
Section intitulée « Ce que ce n’est pas »- Ce n’est pas un « remplacement direct » avec une sortie identique au bit près. Pour les méthodes déléguées, le rendu visible est compatible, mais les octets du PDF rendu diffèrent, car le moteur sous-jacent est une implémentation PDF 2.0 différente et indépendante.
- Ce n’est pas « 100 % compatible TCPDF ». Un ensemble défini de méthodes acceptent des paramètres hérités que le moteur n’honore pas, ou ne produisent aucun effet. Ces cas sont énumérés et testés — voir /integrations/tcpdf-compat/method-coverage/.
- Ce n’est pas à lui seul un produit de signature ou d’archivage. Les signatures numériques et la conformité d’archivage PDF/A sont réservées à une édition NextPDF commerciale. Cette documentation ne formule aucune revendication de signature certifiée, garantie ou juridiquement valable.
Pourquoi migrer via une couche de compatibilité
Section intitulée « Pourquoi migrer via une couche de compatibilité »Réécrire intégralement chaque appel TCPDF dans une grande application est très risqué et se livre difficilement de façon incrémentale. La couche de compatibilité te permet de :
- Remplacer la dépendance et exécuter ta suite de tests existante pour repérer ce qui fonctionne déjà sans modification.
- Utiliser le mode strict comme outil d’audit pour énumérer chaque endroit où le comportement de TCPDF ne peut pas être reproduit exactement.
- Migrer ces points d’appel vers l’API NextPDF moderne un par un, en gardant l’application en état d’être livrée tout au long du processus.
L’état cible est l’API NextPDF\Core\Document moderne, une fois la couche de compatibilité retirée. Voir /integrations/tcpdf-compat/migration/ pour la stratégie complète.
Ce que tu gagnes sur le moteur NextPDF
Section intitulée « Ce que tu gagnes sur le moteur NextPDF »Quand un appel TCPDF est délégué, il s’exécute sur un moteur PDF 2.0 (ISO 32000-2), avec le chiffrement AES-256 du gestionnaire standard disponible et une sûreté de typage PHPStan niveau 10 sur l’ensemble de l’adaptateur. La sortie est toujours écrite en PDF 2.0 ; l’adaptateur ne peut pas cibler une version PDF antérieure (voir /integrations/tcpdf-compat/method-coverage/ §4).
L’adaptateur durcit plusieurs pièges historiques de TCPDF 6.2.13 :
| Comportement hérité | Comportement de l’adaptateur |
|---|---|
Error() appelle die() et arrête silencieusement le processus | Error() lève une RuntimeException — observable et interceptable |
| Méthode HTML qui pouvait exécuter du PHP depuis le balisage | Cette échappatoire est désactivée — le balisage ne peut pas déclencher l’exécution de PHP |
Output() renvoie directement la sortie et peut corrompre les tampons de sortie des workers | La sortie est routée via un pont de destination sécurisé |
| Récursion header/footer non protégée | Protection contre la récursion |
Portée et éditions
Section intitulée « Portée et éditions »La couche de compatibilité est livrée dans la distribution core (nextpdf/compat-legacy, nécessitant nextpdf/core ^3.0). Le chiffrement via le gestionnaire standard est disponible dans core. Les signatures numériques et la conformité d’archivage PDF/A nécessitent une édition NextPDF commerciale ; l’adaptateur expose les points d’entrée, mais le chemin core n’est pas un produit de signature. Voir /integrations/tcpdf-compat/security-and-operations/ pour la formulation précise.
Où aller ensuite
Section intitulée « Où aller ensuite »- /integrations/tcpdf-compat/install/ — installe le paquet et vérifie la liaison avec le moteur.
- /integrations/tcpdf-compat/quickstart/ — un premier document exécutable et adossé à des tests.
- /integrations/tcpdf-compat/method-coverage/ — ce que fait exactement chaque méthode TCPDF ici.
- /integrations/tcpdf-compat/migration/ — la stratégie de migration fichier par fichier.
- /integrations/tcpdf-compat/configuration/ — le mode strict et la configuration de l’adaptateur.
- /integrations/tcpdf-compat/production-usage/ — exécuter l’adaptateur sous charge et dans des workers.
- /integrations/tcpdf-compat/security-and-operations/ — chiffrement, posture de signature, durcissement.
- /integrations/tcpdf-compat/troubleshooting/ — les échecs de migration courants et leurs corrections.
- /integrations/tcpdf-compat/integration/ / /integrations/tcpdf-compat/boot-and-discovery/ — câbler la façade dans une application et enregistrer les alias de classes globaux.
Voir aussi
Section intitulée « Voir aussi »docs/TCPDF_COVERAGE.md— matrice de couverture de référence (dans le dépôt)- Le fichier
NOTICEdu paquet — déclaration d’implémentation indépendante