Пакет Adaptation
Adaptation · LGPL-3.0Пакет Adaptation предоставляет обратно совместимый адаптер для TCPDF 6.2.13. Он отображает 252 устаревших метода на современный API TCPDF-Next, позволяя существующим кодовым базам TCPDF мигрировать с минимальными изменениями кода.
Когда использовать Adaptation
| Сценарий | Рекомендация |
|---|---|
| Существующая кодовая база TCPDF (сотни вызовов) | Используйте Adaptation — мигрируйте инкрементально |
| Новый проект с нуля | Используйте Core напрямую — более чистый API |
Переопределение Header() / Footer() | Используйте Adaptation — non-final класс поддерживает переопределения |
| Используются устаревшие хелпер-классы | Используйте Adaptation — предоставляет TCPDF_STATIC, TCPDF_FONTS и др. |
Установка
bash
composer require yeeefang/tcpdf-next-adaptationТребования: yeeefang/tcpdf-next ^1.7
Быстрый старт
Замените импорт TCPDF, и ваш код работает как есть:
php
// Before (legacy TCPDF)
// use TCPDF;
// After (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 является non-final, поэтому вы можете переопределять Header() и Footer() как в устаревшем TCPDF:
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 - Запустите ваши существующие тесты — они должны проходить без изменений
- Постепенно мигрируйте на современный fluent API, где это удобно
- После полной миграции удалите пакет Adaptation и используйте Core напрямую
