دمج أداة النقل الخلفي من NextPDF
هذه أدوات بناء فقط، وليست تبعية وقت تشغيل. يستخدم القائمون على الصيانة هذه الحزمة لإنتاج توزيعات النقل الخلفي من NextPDF لإصداري PHP (PHP: Hypertext Preprocessor) 7.4 و PHP 8.1. يجب ألا تضيف التطبيقات هذه الحزمة مطلقًا كتبعية وقت تشغيل.
لمحة سريعة
قسم بعنوان «لمحة سريعة»توجد نقطتا دمج منفصلتان. يُدمَج مستودع أداة البناء في تدفق إصدار مضيف البناء. أما التطبيق النهائي فلا يدمج إلا الحزمة المُنتَجة، nextpdf/backport، في شجرة تبعياته. ولا تدخل أداة البناء مطلقًا في شجرة تبعيات أي تطبيق.
التثبيت (لمضيفات البناء فقط)
قسم بعنوان «التثبيت (لمضيفات البناء فقط)»نظرًا إلى أن أداة البناء تعلن "type": "project" في composer.json، فعاملها بوصفها مستودع مشروع، لا مكتبة. ادمجها باستنساخ المستودع وتشغيل تثبيت تطوير، لا عبر composer require:
git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74composer install --prefer-dist --no-progressاسحب الفرع الخاص بالهدف الذي تعتزم إنتاجه. استخدم PHP74 (الافتراضي) لتوزيعة PHP 7.4 المقتصرة على النواة. واستخدم PHP81 لتوزيعة PHP 8.1 مع جميع المحوِّلات. لا تمرِّر --no-dev. يتطلب البناء محرك Rector وPHPStan وPHPUnit؛ وهي تبعيات تطوير. جرى التحقق من ذلك بالرجوع إلى composer.json (type، require-dev) ونموذج الفرعين المزدوجين في /integrations/backport/overview/.
الإقلاع والاكتشاف التلقائي
قسم بعنوان «الإقلاع والاكتشاف التلقائي»لا توفر أداة البناء أي اكتشاف تلقائي على مستوى أطر العمل. عند البناء، يحمِّل scripts/build.php محرك Rector وقواعد شجرة الصياغة المجردة الثلاث المخصصة عبر استدعاءات require_once صريحة والتحميل التلقائي وفق توصية معايير PHP رقم 4 (PSR-4) من Composer. يُوثَّق تسلسل الإقلاع الكامل واكتشاف وحدات المصدر في /integrations/backport/boot-and-discovery/.
روابط الحاوية
قسم بعنوان «روابط الحاوية»غير منطبق. أداة البناء هي أداة لواجهة سطر الأوامر (CLI) ولا تتضمن حاوية حقن تبعيات. جرى التحقق من ذلك بالرجوع إلى بنية المستودع وcomposer.jsonautoload.
إعدادات النشر
قسم بعنوان «إعدادات النشر»ليست “إعدادات النشر” ملفًا منفصلًا، بل هي مجموعة رايات البناء وتعريفات الحزم الثابتة في scripts/adjust-composer.php:
- خريطة الأهداف. تُنتِج
--target=php81الحزمةnextpdf/backport(بالقيد>=8.1 <8.5، وتحلّ محل النواة والمحوِّلات وcompat-legacy)، وكذلكnextpdf/backport-proعند تضمينها. وتُنتِج--target=php74الحزمةnextpdf/backport(بالقيد>=7.4 <8.1، وتحلّ محلnextpdf/coreفقط) دون Pro. - الاستبعاد. تستبعد
--no-proحزمة Pro على هدف PHP 8.1. ويستبعد هدف PHP 7.4، بحكم بنيته، حزمة Pro وجميع المحوِّلات. - الإصدار. يكتب البناء قيمة
--version(أو وسم الإصدار بعد إزالة الحرفvالمتصدِّر) فيcomposer.jsonالمُولَّد وCHANGELOG.md.
جرى التحقق من هذا السلوك بالرجوع إلى scripts/build.php وscripts/adjust-composer.php (generatePublicComposer()، generateProComposer()، buildReplace()). يرد المرجع الكامل للرايات في /integrations/backport/configuration/.
الدمج في تدفق الإصدار
قسم بعنوان «الدمج في تدفق الإصدار»ادمج أداة البناء في تدفق الإصدار عبر سير عمل GitHub Actions في .github/workflows/. يتحقق 0-ci.yml من كل تغيير على كل فرع دائم عبر PHPStan واختبارات القواعد وتشغيل تجريبي. ويُنتِج build.yml التوزيعة ويصدرها عند تلقّيه حدث إرسال مستودع source-release أو إرسالًا يدويًا. يُوثَّق نموذج التشغيل الكامل — المُشغِّلات والمسارات ومصفوفة التحقق والإصدار المشترك — في /integrations/backport/production-usage/.
اختبار التحقق المبدئي لاستهلاك المخرجات
قسم بعنوان «اختبار التحقق المبدئي لاستهلاك المخرجات»خط أنابيب الإصدار هو اختبار التحقق المبدئي للدمج. بعد اكتمال البناء، يبدّل سير العمل المُشغِّل إلى إصدار PHP الهدف ويشغّل php -l على المصدر المُصدَر. ثم يثبّت الحزمة المُنتَجة ويختبرها عمليًا عبر مصفوفة التحقق (PHP 8.1–8.4 لمسار PHP 8.1، وPHP 7.4 و8.0 لمسار PHP 7.4). وأي توزيعة يرفضها وقت تشغيل هدف لا تصل إلى مرحلة الإصدار. جرى التحقق من ذلك بالرجوع إلى .github/workflows/build.yml (مهمة فحص الصياغة ومهام validate-*). يمكنك إجراء التحقق المبدئي للمخرجات المُنتَجة محليًا بالطريقة نفسها عبر أمر Docker الذي تطبعه مرحلة التحقق — راجع /integrations/backport/quickstart/.
نقاط الدخول العامة
قسم بعنوان «نقاط الدخول العامة»السطح العام لأداة البناء هو منسّق واجهة سطر الأوامر وأسماؤه البديلة في سكربتات Composer، وليس ملفًا تنفيذيًا في bin/.
| نقطة الدخول | يُترجَم إلى | الغرض |
|---|---|---|
composer build | php scripts/build.php | تشغيل البناء الكامل |
composer build:dry | php scripts/build.php --dry-run | تشغيل بناء تجريبي |
composer test | phpunit | تشغيل مجموعات تجهيزات اختبار القواعد |
composer analyse | phpstan analyse rector/rules scripts --level=10 | تحليل كود البناء |
جرى التحقق من ذلك بالرجوع إلى composer.jsonscripts. تعرض الحزمة النهائية رموز واجهة برمجة التطبيقات (API) الأصلية في NextPDF\ دون تغيير من النقل الخلفي. تحلّ الحزمة محل حزم المصدر وتحمِّل الشجرة المدموجة تلقائيًا عبر بادئة PSR-4 الواحدة.
انظر أيضًا
قسم بعنوان «انظر أيضًا»- /integrations/backport/overview/ — ما هي أداة البناء وما الذي تنتجه.
- /integrations/backport/boot-and-discovery/ — تسلسل الإقلاع واكتشاف المصدر.
- /integrations/backport/install/ — التثبيت على مضيف البناء وفي الطرف النهائي.
- /integrations/backport/production-usage/ — خط أنابيب الإصدار.