İçeriğe geç

NextPDF compat-legacy kurulumu

nextpdf/compat-legacy bir Composer kitaplığıdır. PHP 8.4 veya üzerini ve nextpdf/core ^3.0 sürümünü gerektirir. Geçiş yapabileceğiniz bir uyumluluk sınıfı eklemek için kitaplığı kurun; mevcut TCPDF çağrılarınız aynı kalır.

BağımlılıkSürümYetkili kaynak
PHP>=8.4 <9.0paket composer.jsonrequire.php
nextpdf/core^3.0paket composer.jsonrequire
Composer2.7 veya üzeriaraç zinciri temel düzeyi

Paket kendi test paketiyle birlikte gelir ve baseline olmadan PHPStan Level 10 raporlar. Çalışma zamanında PHP 8.4 gerektirir. Daha geniş NextPDF motoru, backport hattında PHP 8.1’den 8.4’e kadar olan sürümleri destekler; ancak bu bağdaştırıcı alt sınır olarak PHP 8.4’ü belirler.

Paketi eklemek için Composer’ı kullanın:

Terminal window
composer require nextpdf/compat-legacy:^3.0

Composer, nextpdf/core ^3.0 bağımlılığını geçişli bir bağımlılık olarak çözer. Çekirdek özellik kümesi başka herhangi bir çalışma zamanı uzantısı gerektirmez.

Paket meta verileri, eski ad olan nextpdf/compat-tcpdf adını da bir Composer replace girdisi aracılığıyla kabul eder. Yeni kurulumlarda, asıl paket adı olan nextpdf/compat-legacy gerektirilmelidir.

Kurulumdan sonra bağdaştırıcı sınıfının yüklendiğini ve motor bağlantısının çözümlendiğini onaylayın. Aşağıdaki denetim, tek sayfalık bir Taşınabilir Belge Biçimi (PDF) dosyasını tamamen bellekte oluşturur ve PDF başlığını doğrular. tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php paket testinin doğruladığı yüzeyin aynısını sınar.

examples/install-verify.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";

Çalıştırın:

Terminal window
php examples/install-verify.php

Beklenen çıktı tek bir OK: satırıdır. Döndürülen dizedeki %PDF öneki, bağdaştırıcının bir NextPDF\Core\Document oluşturduğunu, sayfa ve metin çağrılarını devrettiğini ve geçerli PDF 2.0 çıktısını serileştirdiğini onaylar.

Bağdaştırıcı, nextpdf/core ^3.0 sürümünü gerektirir. Composer’ın çözdüğü sürümü onaylayın:

Terminal window
composer show nextpdf/core --format=json

Composer, ^3.0 aralığı dışında bir çekirdek sürümünü çözerse, bağdaştırıcı yanlış çıktı üretmek yerine oluşturma sırasında hızla başarısız olur. Projeniz motora doğrudan da bağımlıysa, motoru composer.json dosyanızda açıkça sabitleyin.

Kod tabanınız genel ad alanında new \TCPDF(...) çağrısını yapıyorsa ve bu use/require satırlarını henüz değiştiremiyorsanız, paket genel takma adları kaydedebilir. Bu davranış açıkça etkinleştirmeye bağlıdır ve /integrations/tcpdf-compat/boot-and-discovery/. sayfasında açıklanmıştır. Aynı işlemde gerçek TCPDF kitaplığı da yüklüyse bunu etkinleştirmeyin; çakışma önleme kuralı için /integrations/tcpdf-compat/troubleshooting/ sayfasına bakın.

  • Mevcut bir TCPDF bağımlılığını değiştirmez veya kaldırmaz. tecnickcom/tcpdf paketini yalnızca /integrations/tcpdf-compat/migration/. sayfasındaki bilinçli bir sonraki adım olarak kaldırın.
  • Dijital imzaları veya PDF/A’yı etkinleştirmez. Bu özellikler ticari bir NextPDF sürümü gerektirir (bkz. /integrations/tcpdf-compat/security-and-operations/).
  • PDF çıktı hedefini değiştirmez. Çıktı her zaman PDF 2.0’dır.
  • /integrations/tcpdf-compat/quickstart/ — ilk gerçek belgenizi oluşturun.
  • /integrations/tcpdf-compat/configuration/ — katı modu ve bağdaştırıcıyı yapılandırın.
  • /integrations/tcpdf-compat/migration/ — dosya dosya geçiş stratejisini kullanın.
  • /integrations/tcpdf-compat/method-coverage/ — her TCPDF yönteminin burada tam olarak ne yaptığını görün.
  • Paket composer.json dosyası — yetkili bağımlılık kısıtlamaları
  • docs/TCPDF_COVERAGE.md — yetkili kapsam matrisi (depo içi)