Adaptation Package
Adaptation · LGPL-3.0Adaptation package cung cấp adapter tương thích ngược drop-in cho TCPDF 6.2.13. Nó ánh xạ 252 method cũ sang API hiện đại của TCPDF-Next, cho phép codebase TCPDF hiện có migration với thay đổi code tối thiểu.
Khi nào dùng Adaptation
| Tình huống | Khuyến nghị |
|---|---|
| Codebase TCPDF hiện có (hàng trăm lời gọi) | Dùng Adaptation — migration dần dần |
| Dự án mới bắt đầu từ đầu | Dùng Core trực tiếp — API sạch hơn |
Ghi đè Header() / Footer() | Dùng Adaptation — class non-final hỗ trợ override |
| Đang dùng helper class cũ | Dùng Adaptation — cung cấp TCPDF_STATIC, TCPDF_FONTS, v.v. |
Cài đặt
bash
composer require yeeefang/tcpdf-next-adaptationYêu cầu: yeeefang/tcpdf-next ^1.7
Bắt đầu nhanh
Thay import TCPDF và code hoạt động ngay:
php
// Trước (TCPDF cũ)
// use TCPDF;
// Sau (TCPDF-Next Adaptation)
use Yeeefang\TcpdfNext\Adaptation\TCPDF;
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8');
$pdf->SetCreator('My App');
$pdf->SetAuthor('Author');
$pdf->SetTitle('Document');
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Cell(0, 10, 'Hello World', 0, 1);
$pdf->Output('/path/to/output.pdf', 'F');Mapped Method
Adapter ánh xạ 252 method TCPDF cũ sang tương đương TCPDF-Next, bao gồm:
| Method cũ | Tương đương TCPDF-Next |
|---|---|
SetFont() | setFont() |
Cell() | cell() |
MultiCell() | multiCell() |
writeHTML() | writeHtml() |
Image() | image() |
Output() | output() |
SetProtection() | setProtection() |
setSignature() | setSignature() |
Override Header / Footer
Class adapter TCPDF là non-final, nên bạn có thể override Header() và Footer() giống TCPDF cũ:
php
class MyPdf extends TCPDF
{
public function Header(): void
{
$this->SetFont('helvetica', 'B', 12);
$this->Cell(0, 10, 'My Header', 0, 1, 'C');
}
public function Footer(): void
{
$this->SetY(-15);
$this->SetFont('helvetica', 'I', 8);
$this->Cell(0, 10, 'Page ' . $this->getAliasNumPage(), 0, 0, 'C');
}
}Helper Class cũ
Cho codebase tham chiếu helper class tĩnh của TCPDF:
| Class cũ | Tương đương Adaptation |
|---|---|
TCPDF_STATIC | Yeeefang\TcpdfNext\Adaptation\TCPDF_STATIC |
TCPDF_FONTS | Yeeefang\TcpdfNext\Adaptation\TCPDF_FONTS |
TCPDF_COLORS | Yeeefang\TcpdfNext\Adaptation\TCPDF_COLORS |
TCPDF_IMAGES | Yeeefang\TcpdfNext\Adaptation\TCPDF_IMAGES |
Chiến lược Migration
- Cài Adaptation package cùng code hiện có
- Đổi câu lệnh
usetừTCPDFsangYeeefang\TcpdfNext\Adaptation\TCPDF - Chạy test hiện có — chúng nên pass mà không cần thay đổi
- Dần dần migration sang fluent API hiện đại khi thuận tiện
- Khi đã migration hoàn toàn, gỡ Adaptation package và dùng Core trực tiếp
