Adaptation 패키지
Adaptation · LGPL-3.0Adaptation 패키지는 TCPDF 6.2.13을 위한 드롭인 하위 호환 어댑터를 제공합니다. 252개의 레거시 메서드를 TCPDF-Next의 모던 API에 매핑하여, 기존 TCPDF 코드베이스가 최소한의 코드 변경으로 마이그레이션할 수 있도록 합니다.
Adaptation 사용 시기
| 시나리오 | 권장사항 |
|---|---|
| 기존 TCPDF 코드베이스 (수백 건의 호출) | Adaptation 사용 — 점진적으로 마이그레이션 |
| 새 프로젝트를 처음부터 시작 | Core를 직접 사용 — 더 깔끔한 API |
Header() / Footer() 오버라이드 | Adaptation 사용 — 비-final 클래스가 오버라이드 지원 |
| 레거시 헬퍼 클래스 사용 중 | Adaptation 사용 — TCPDF_STATIC, TCPDF_FONTS 등 제공 |
설치
bash
composer require yeeefang/tcpdf-next-adaptation요구사항: yeeefang/tcpdf-next ^1.7
빠른 시작
TCPDF import를 교체하면 코드가 그대로 작동합니다:
php
// 이전 (레거시 TCPDF)
// use TCPDF;
// 이후 (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');매핑된 메서드
어댑터는 252개의 레거시 TCPDF 메서드를 TCPDF-Next 대응 메서드에 매핑합니다:
| 레거시 메서드 | TCPDF-Next 대응 메서드 |
|---|---|
SetFont() | setFont() |
Cell() | cell() |
MultiCell() | multiCell() |
writeHTML() | writeHtml() |
Image() | image() |
Output() | output() |
SetProtection() | setProtection() |
setSignature() | setSignature() |
Header / Footer 오버라이드
TCPDF 어댑터 클래스는 비-final이므로, 레거시 TCPDF와 동일하게 Header()와 Footer()를 오버라이드할 수 있습니다:
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');
}
}레거시 헬퍼 클래스
TCPDF의 정적 헬퍼 클래스를 참조하는 코드베이스를 위한 호환성 레이어:
| 레거시 클래스 | 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 |
마이그레이션 전략
- 기존 코드와 함께 Adaptation 패키지를 설치합니다
use문을TCPDF에서Yeeefang\TcpdfNext\Adaptation\TCPDF로 변경합니다- 기존 테스트를 실행합니다 — 변경 없이 통과해야 합니다
- 편리한 부분부터 모던 플루언트 API로 점진적으로 마이그레이션합니다
- 완전히 마이그레이션되면 Adaptation 패키지를 제거하고 Core를 직접 사용합니다
