การติดตั้ง NextPDF compat-legacy
โดยสรุป
หัวข้อที่มีชื่อว่า “โดยสรุป”nextpdf/compat-legacy เป็นไลบรารี Composer ที่ต้องใช้ PHP 8.4 หรือใหม่กว่า และ nextpdf/core ^3.0 เมื่อติดตั้งแล้วจะเพิ่มคลาสความเข้ากันได้ที่คุณสามารถสลับไปใช้ได้ โดยการเรียกใช้ TCPDF ที่มีอยู่เดิมยังคงไม่เปลี่ยนแปลง
ข้อกำหนด
หัวข้อที่มีชื่อว่า “ข้อกำหนด”| ดีเพนเดนซี | เวอร์ชัน | แหล่งข้อมูลอ้างอิงหลัก |
|---|---|---|
| PHP | >=8.4 <9.0 | แพ็กเกจ composer.jsonrequire.php |
nextpdf/core | ^3.0 | แพ็กเกจ composer.jsonrequire |
| Composer | 2.7 หรือใหม่กว่า | เกณฑ์พื้นฐานของชุดเครื่องมือ |
แพ็กเกจมาพร้อมชุดทดสอบของตนเอง และประกาศใช้ PHPStan Level 10 โดยไม่มีเบสไลน์ ต้องใช้ PHP 8.4 ขณะรันไทม์ เอนจิน NextPDF โดยรวมรองรับ PHP 8.1 ถึง 8.4 ในสายแบ็กพอร์ต แต่อะแดปเตอร์นี้กำหนดให้ PHP 8.4 เป็นเวอร์ชันขั้นต่ำ
การติดตั้ง
หัวข้อที่มีชื่อว่า “การติดตั้ง”ใช้ Composer เพื่อเพิ่มแพ็กเกจ:
composer require nextpdf/compat-legacy:^3.0Composer จะแก้ไขดีเพนเดนซี nextpdf/core ^3.0 ให้เป็นดีเพนเดนซีแบบส่งผ่าน ชุดคุณลักษณะหลักไม่ต้องการส่วนขยายรันไทม์เพิ่มเติม
เมตาดาตาของแพ็กเกจยังยอมรับชื่อแพ็กเกจเดิม
nextpdf/compat-tcpdfผ่านรายการreplaceของ Composer การติดตั้งใหม่ ควรกำหนดให้ใช้nextpdf/compat-legacyซึ่งเป็น ชื่อแพ็กเกจมาตรฐาน
ตรวจสอบการติดตั้ง
หัวข้อที่มีชื่อว่า “ตรวจสอบการติดตั้ง”หลังการติดตั้ง ให้ยืนยันว่าคลาสอะแดปเตอร์โหลดได้และการเชื่อมโยงเอนจินแก้ไขได้สำเร็จ การตรวจสอบต่อไปนี้จะสร้างไฟล์ Portable Document Format (PDF) หนึ่งหน้าทั้งหมดในหน่วยความจำ แล้วตรวจสอบส่วนหัวของ PDF การตรวจสอบนี้ครอบคลุมส่วนเดียวกับที่การทดสอบของแพ็กเกจ tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php ตรวจสอบ
<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\TCPDF;
$pdf = new TCPDF('P', 'mm', 'A4');$pdf->AddPage();$pdf->SetFont('helvetica', '', 12);$pdf->Cell(0, 10, 'compat-legacy install verified');
$bytes = $pdf->Output('verify.pdf', 'S');
if (! str_starts_with($bytes, '%PDF')) { fwrite(STDERR, "Install check failed: output is not a PDF.\n"); exit(1);}
echo "OK: adapter loaded, engine linked, PDF produced (" . strlen($bytes) . " bytes).\n";เรียกใช้:
php examples/install-verify.phpเอาต์พุตที่คาดหวังคือบรรทัด OK: เพียงบรรทัดเดียว คำนำหน้า %PDF ในสตริงที่ส่งคืนยืนยันว่าอะแดปเตอร์สร้าง NextPDF\Core\Document ส่งต่อการเรียกหน้าและข้อความ และซีเรียลไลซ์เอาต์พุต PDF 2.0 ที่ถูกต้องแล้ว
ตรวจสอบเวอร์ชันของเอนจิน
หัวข้อที่มีชื่อว่า “ตรวจสอบเวอร์ชันของเอนจิน”อะแดปเตอร์ต้องใช้ nextpdf/core ^3.0 ยืนยันเวอร์ชันที่ Composer แก้ไขได้:
composer show nextpdf/core --format=jsonหาก Composer แก้ไขเวอร์ชัน core เป็นเวอร์ชันนอก ^3.0 อะแดปเตอร์จะล้มเหลวทันทีขณะสร้างออบเจกต์ แทนที่จะสร้างเอาต์พุตที่ผิดพลาด หากโปรเจกต์ของคุณขึ้นต่อเอนจินโดยตรงด้วย ให้ปักหมุดเอนจินใน composer.json ของคุณอย่างชัดเจน
ทางเลือก: การกำหนดนามแฝงคลาสแบบโกลบอล
หัวข้อที่มีชื่อว่า “ทางเลือก: การกำหนดนามแฝงคลาสแบบโกลบอล”หากโค้ดเบสของคุณเรียกใช้ new \TCPDF(...) ในเนมสเปซโกลบอล และคุณยังไม่สามารถเปลี่ยนบรรทัด use/require เหล่านั้นได้ แพ็กเกจสามารถลงทะเบียนนามแฝงแบบโกลบอลได้ พฤติกรรมนี้ต้องเลือกเปิดใช้งานเอง และอธิบายไว้ใน /integrations/tcpdf-compat/boot-and-discovery/ อย่าเปิดใช้งานหากมีการติดตั้งไลบรารี TCPDF จริงอยู่ในกระบวนการเดียวกันด้วย ดู /integrations/tcpdf-compat/troubleshooting/ สำหรับกฎการหลีกเลี่ยงความขัดแย้ง
สิ่งที่การติดตั้งไม่ได้ทำ
หัวข้อที่มีชื่อว่า “สิ่งที่การติดตั้งไม่ได้ทำ”- การติดตั้งจะไม่แก้ไขหรือนำดีเพนเดนซี TCPDF ที่มีอยู่เดิมออก ให้นำ
tecnickcom/tcpdfออกอย่างตั้งใจในขั้นตอนถัดไปเท่านั้น ที่ /integrations/tcpdf-compat/migration/ - การติดตั้งจะไม่เปิดใช้งานลายเซ็นดิจิทัลหรือ PDF/A คุณลักษณะเหล่านั้นต้องใช้รุ่นเชิงพาณิชย์ของ NextPDF (ดู /integrations/tcpdf-compat/security-and-operations/)
- การติดตั้งจะไม่เปลี่ยนเป้าหมายของเอาต์พุต PDF เอาต์พุตเป็น PDF 2.0 เสมอ
ขั้นตอนถัดไป
หัวข้อที่มีชื่อว่า “ขั้นตอนถัดไป”- /integrations/tcpdf-compat/quickstart/ — สร้างเอกสารจริงฉบับแรกของคุณ
- /integrations/tcpdf-compat/configuration/ — กำหนดค่าโหมดเข้มงวดและอะแดปเตอร์
- /integrations/tcpdf-compat/migration/ — ใช้กลยุทธ์การย้ายระบบแบบทีละไฟล์
- /integrations/tcpdf-compat/method-coverage/ — ดูว่าเมธอดแต่ละรายการของ TCPDF ทำงานอย่างไรในที่นี้
ดูเพิ่มเติม
หัวข้อที่มีชื่อว่า “ดูเพิ่มเติม”- แพ็กเกจ
composer.json— ข้อจำกัดของดีเพนเดนซีจากแหล่งอ้างอิงหลัก docs/TCPDF_COVERAGE.md— เมทริกซ์ความครอบคลุมที่เป็นแหล่งอ้างอิงหลัก (อยู่ในรีโป)