تثبيت جسر Cloudflare لـ NextPDF
نظرة سريعة
قسم بعنوان «نظرة سريعة»ثبّت الحزمة باستخدام Composer. ثم أضِف عميل HTTP يطبّق توصية PHP المعيارية 18 (PSR-18)، ومصانع تطبّق PSR-17. يصرّح الجسر بالواجهات، لكنه لا يتضمّن عميل HTTP فعليًا.
المتطلبات
قسم بعنوان «المتطلبات»يقرأ الجسر التبعيات الآتية من قسم require في composer.json:
| التبعية | القيد |
|---|---|
| PHP | >=8.4 <9.0 |
nextpdf/core | ^3.0 |
psr/http-client (PSR-18) | ^1.0 |
psr/http-factory (PSR-17) | ^1.1 |
psr/log (PSR-3) | ^3.0 |
تُحمِّل الحزمة NextPDF\Cloudflare\ تلقائيًا من src/Cloudflare/ (PSR-4). كما تجتاز التحليل الساكن عند المستوى 10 من PHPStan، ولا تُرفَق بأي خط أساس للمُحلِّل.
تثبيت الحزمة
قسم بعنوان «تثبيت الحزمة»composer require nextpdf/cloudflareإضافة عميل HTTP والمصانع
قسم بعنوان «إضافة عميل HTTP والمصانع»يتطلّب مُنشئ الجسر ClientInterface متوافقًا مع PSR-18، وRequestFactoryInterface متوافقًا مع PSR-17، وStreamFactoryInterface متوافقًا مع PSR-17. كما يستخدم مسار النقل المثبّت ResponseFactoryInterface متوافقًا مع PSR-17 عندما توفّره. يمكنك استخدام أي تنفيذ متوافق. يورد ملف README مكتبة Guzzle مثالًا على ذلك:
composer require guzzlehttp/guzzleتوفّر Guzzle 7 عميل PSR-18 وجميع واجهات مصانع PSR-17 الأربع. كما تعمل Symfony HttpClient وBuzz والحزم المتوافقة الأخرى. صُمّمت الحزمة لتكون محايدة تجاه المورّد. يؤكّد اختبار tests/Unit/Architecture/PsrConformanceTest.php أن الحزمة تعتمد على عقود PSR فقط، لا على أي عميل فعلي.
اختياري: الاحتياط المحلي عبر Chrome
قسم بعنوان «اختياري: الاحتياط المحلي عبر Chrome»عندما يتعذّر الوصول إلى Worker ويكون الاحتياط مُفعَّلًا، يمكن للجسر تفويض التصيير إلى مُصيِّر محلي. وفّر ذلك المُصيِّر عبر NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface. تذكر كتلة suggest في composer.json التنفيذ الرسمي من الطرف الأول:
composer require nextpdf/artisanتثبيت nextpdf/artisan وحده لا يكفي. يجب أيضًا تمرير LocalRendererFactoryInterface إلى مُنشئ المُصيِّر. إذا كان Artisan مثبّتًا ولكن لم يُوصَّل أي مصنع، يكتشف الجسر هذه الحالة ويطرح CloudflareNotAvailableException. وتذكر رسالة الاستثناء ذلك صراحةً. راجع /integrations/cloudflare/production-usage/ للاطّلاع على طريقة التوصيل.
التحقّق من التثبيت
قسم بعنوان «التحقّق من التثبيت»<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Cloudflare\CloudflareRendererConfig;
$config = new CloudflareRendererConfig( workerUrl: 'https://pdf-renderer.example.workers.dev/render', apiToken: 'placeholder',);
echo $config->isValid() ? "ready\n" : "incomplete\n";تُعيد isValid() القيمة true عندما يكون كلٌّ من workerUrl وapiToken غير فارغ. وهي لا تتّصل بالشبكة؛ بل تتحقّق فقط من اكتمال التهيئة، لذا يمكنك استخدامها كاختبار تمهيدي عند النشر.
انظر أيضًا
قسم بعنوان «انظر أيضًا»- /integrations/cloudflare/configuration/ — جميع خيارات التهيئة.
- /integrations/cloudflare/quickstart/ — شغّل أول عملية تصيير لديك.
- /integrations/cloudflare/boot-and-discovery/ — وصِّل الجسر داخل حاوية إطار العمل.