تثبيت 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 المستوى 10 دون خط أساس. وتتطلّب PHP 8.4 في وقت التشغيل. يدعم محرك NextPDF الأوسع الإصدارات PHP 8.1 حتى 8.4 على مسار النقل العكسي، لكن هذا المهايئ يحدّد PHP 8.4 حدًّا أدنى له.
التثبيت
قسم بعنوان «التثبيت»استخدم Composer لإضافة الحزمة:
composer require nextpdf/compat-legacy:^3.0يحلّ Composer 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 إصدار محرك خارج ^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— مصفوفة التغطية المرجعية (داخل المستودع)