Skip to content

Panduan Upgrade

TCPDF-Next saat ini berada pada release line 1.x. Halaman ini menjelaskan kebijakan versioning dan cara tetap up to date.

Semantic Versioning

TCPDF-Next mengikuti Semantic Versioning 2.0.0:

Kenaikan VersiArtiAman untuk Update?
Patch (1.0.x)Bug fix, dokumentasi, refaktor internalYa — sepenuhnya backward-compatible
Minor (1.x.0)Fitur baru, penambahan non-breakingYa — tidak perlu perubahan kode yang ada
Major (x.0.0)Perubahan API breakingBaca panduan migrasi terlebih dahulu

Selama seri 1.x, API publik dianggap stabil. Setiap perubahan breaking akan dicadangkan untuk major release berikutnya dan akan disertai panduan migrasi detail.

Memeriksa Changelog

Sebelum upgrade, tinjau CHANGELOG di GitHub. Setiap release mencantumkan:

  • Added — fitur dan class baru
  • Changed — modifikasi pada perilaku yang ada
  • Deprecated — API yang akan dihapus di major version berikutnya
  • Fixed — bug fix
  • Security — patch kerentanan (upgrade segera)

Update melalui Composer

bash
# Update ke versi kompatibel terbaru dalam constraint Anda
composer update yeeefang/tcpdf-next

# Atau pin ke versi tertentu
composer require yeeefang/tcpdf-next:^1.2

Setelah update, jalankan test suite Anda untuk memverifikasi tidak ada yang rusak:

bash
composer test

Migrasi dari Library Lain

Jika Anda datang dari library PDF lain, panduan berikut akan membantu Anda memetakan konsep familiar ke padanan TCPDF-Next:

Dari TCPDF legacy

TCPDF-Next bukan fork. Ini adalah penulisan ulang dari awal dengan API yang sepenuhnya baru. Perbedaan utama:

  • Konstanta konfigurasi statis diganti dengan typed enum dan value object.
  • Global state dihilangkan — setiap instance Document bersifat mandiri.
  • Semua class bersifat readonly jika memungkinkan, dengan declare(strict_types=1) ketat.
  • PHP 8.5+ diperlukan (lihat Mengapa PHP 8.5?).

Cheat sheet migrasi side-by-side akan dipublikasikan bersamaan dengan stable release 1.0.

Dari FPDF / FPDI

Method cell/multiCell/text/write sengaja memiliki nama yang mirip, sehingga kurva pembelajaran minimal. Perbedaan utama:

  • Named parameter dan enum menggantikan flag integer posisional.
  • Output menggunakan enum OutputDestination bukan string karakter tunggal.
  • Manajemen font ditangani melalui FontConfig bukan penempatan file manual.

Dari Dompdf / wkhtmltopdf

Jika Anda terbiasa dengan konversi HTML-to-PDF, lihat package Artisan, yang menyediakan pipeline rendering CSS3 penuh di atas TCPDF-Next Core. Untuk konstruksi PDF programatik, pendekatan berbasis API yang dijelaskan di Penggunaan Dasar akan lebih performan dan predictable daripada pembuatan berbasis HTML.

Didistribusikan di bawah lisensi LGPL-3.0-or-later.