Ikhtisar NextPDF compat-legacy
Sekilas pandang
Bagian berjudul “Sekilas pandang”nextpdf/compat-legacy adalah alternatif yang kompatibel dengan TCPDF: lapisan kompatibilitas yang mengekspos API publik TCPDF 6.x di mesin Portable Document Format (PDF) 2.0 NextPDF. Tugasnya hanya satu: membantu kode yang sudah bergantung pada TCPDF 6.x agar dapat berjalan di mesin NextPDF tanpa penulisan ulang, sehingga Anda dapat bermigrasi berkas demi berkas, bukan sekaligus.
Ini bukan fork dari TCPDF, dan bukan pula klona perilaku yang terjamin. Ini adalah implementasi independen yang mempertahankan tanda tangan pemanggilan TCPDF. Deskripsi yang lebih tepat adalah: paket ini mencakup 94 dari sekitar 120 metode TCPDF 6.x yang disurvei melalui delegasi langsung, sementara metode lainnya memiliki perbedaan perilaku yang terdokumentasi (lihat /integrations/tcpdf-compat/method-coverage/).
Apa sebenarnya ini
Bagian berjudul “Apa sebenarnya ini”- Alat bantu migrasi. Paket ini merupakan bagian dari keluarga compat NextPDF. Paket ini membantu Anda beralih dari pustaka PDF lawas; paket ini tidak dimaksudkan sebagai dependensi permanen. Perlakukan paket ini sebagai perancah yang Anda hapus seiring Anda mengadopsi API modern.
- Adaptor permukaan API. Paket ini menyediakan nama kelas TCPDF, nama metode, urutan parameter, dan nilai standar 6.2.13. Paket ini mendelegasikan pemanggilan ke sebuah instans
NextPDF\Core\Document. - Implementasi independen yang dibangun secara clean-room. Paket ini tidak menyalin atau menerjemahkan kode sumber TCPDF, artefak build, data font, atau ekspresi lain yang dilindungi hak cipta. Paket ini menggunakan nama TCPDF hanya untuk mengidentifikasi interoperabilitas. Pernyataan kanoniknya terdapat di berkas
NOTICEpaket.
Apa ini bukan
Bagian berjudul “Apa ini bukan”- Ini bukan “pengganti langsung” dengan keluaran yang identik secara byte. Untuk metode yang didelegasikan, hasilnya terlihat kompatibel, tetapi byte PDF yang dihasilkan berbeda karena ada implementasi PDF 2.0 yang terpisah dan independen yang berjalan di baliknya.
- Ini bukan “kompatibel (bukan identik per byte) dengan TCPDF”. Beberapa metode tertentu menerima parameter lawas yang diabaikan oleh mesin, atau tidak melakukan apa pun sama sekali. Metode-metode ini didaftar dan diuji — lihat /integrations/tcpdf-compat/method-coverage/.
- Ini bukan produk penandatanganan atau pengarsipan tersendiri. Tanda tangan digital dan konformitas pengarsipan PDF/A hanya tersedia pada edisi NextPDF komersial. Dokumentasi ini tidak membuat klaim apa pun tentang sertifikasi, jaminan, atau tanda tangan yang sah secara hukum.
Mengapa bermigrasi melalui lapisan kompatibilitas
Bagian berjudul “Mengapa bermigrasi melalui lapisan kompatibilitas”Menulis ulang setiap pemanggilan TCPDF di seluruh aplikasi besar berisiko dan sulit dirilis secara bertahap. Lapisan kompatibilitas memungkinkan Anda:
- Ganti dependensinya, lalu jalankan suite pengujian Anda yang sudah ada untuk menemukan apa yang berfungsi tanpa perubahan.
- Gunakan mode ketat sebagai audit yang mencantumkan setiap titik tempat perilaku TCPDF tidak dapat direproduksi secara persis.
- Migrasikan titik-titik pemanggilan tersebut ke API NextPDF modern satu per satu, sehingga aplikasi tetap dapat dirilis sepanjang prosesnya.
Keadaan akhir yang dituju adalah API NextPDF\Core\Document modern, dengan lapisan kompatibilitas yang sudah dihapus. Lihat /integrations/tcpdf-compat/migration/ untuk strategi lengkapnya.
Apa yang Anda peroleh di mesin NextPDF
Bagian berjudul “Apa yang Anda peroleh di mesin NextPDF”Saat adaptor mendelegasikan pemanggilan TCPDF, pemanggilan tersebut berjalan di mesin PDF 2.0 (ISO 32000-2), dengan enkripsi standard-handler Advanced Encryption Standard (AES)-256 yang tersedia serta keamanan tipe PHPStan Level 10 di seluruh adaptor. Keluaran selalu ditulis sebagai PDF 2.0; adaptor tidak dapat menargetkan versi PDF yang lebih lama (lihat /integrations/tcpdf-compat/method-coverage/ §4).
Adaptor memperketat beberapa perilaku historis TCPDF 6.2.13:
| Perilaku lawas | Perilaku adaptor |
|---|---|
Error() memanggil die() dan menghentikan proses secara diam-diam | Error() melemparkan RuntimeException — dapat diamati dan ditangkap |
| Metode HTML yang dapat mengeksekusi PHP dari markup | Jalur keluar tersebut dinonaktifkan — markup tidak dapat memicu eksekusi PHP |
Output() mencetak langsung dan dapat merusak buffer keluaran worker | Keluaran melewati jembatan tujuan yang aman |
| Rekursi header/footer yang tidak terlindungi | Dilindungi dari rekursi |
Cakupan dan edisi
Bagian berjudul “Cakupan dan edisi”Lapisan kompatibilitas disertakan dalam distribusi core (nextpdf/compat-legacy, yang membutuhkan nextpdf/core ^3.0). Enkripsi melalui standard handler tersedia di core. Tanda tangan digital dan konformitas pengarsipan PDF/A memerlukan edisi NextPDF komersial; adaptor mengekspos titik masuknya, tetapi jalur core bukan produk penandatanganan. Lihat /integrations/tcpdf-compat/security-and-operations/ untuk pernyataan yang tepat.
Ke mana selanjutnya
Bagian berjudul “Ke mana selanjutnya”- /integrations/tcpdf-compat/install/ — instal paket dan verifikasi koneksi mesin.
- /integrations/tcpdf-compat/quickstart/ — buat dokumen pertama yang dapat dijalankan dan tercakup oleh pengujian.
- /integrations/tcpdf-compat/method-coverage/ — lihat secara tepat apa yang dilakukan setiap metode TCPDF di sini.
- /integrations/tcpdf-compat/migration/ — rencanakan strategi migrasi berkas demi berkas.
- /integrations/tcpdf-compat/configuration/ — konfigurasikan mode ketat dan pengaturan adaptor.
- /integrations/tcpdf-compat/production-usage/ — jalankan adaptor di bawah beban dan di dalam worker.
- /integrations/tcpdf-compat/security-and-operations/ — tinjau enkripsi, postur penandatanganan, dan pengerasan.
- /integrations/tcpdf-compat/troubleshooting/ — perbaiki kegagalan migrasi yang umum.
- /integrations/tcpdf-compat/integration/ / /integrations/tcpdf-compat/boot-and-discovery/ — sambungkan facade ke dalam aplikasi dan daftarkan alias kelas global.
Lihat juga
Bagian berjudul “Lihat juga”docs/TCPDF_COVERAGE.md— matriks cakupan otoritatif (di dalam repo)- Berkas
NOTICEpaket — pernyataan implementasi independen