ข้ามไปยังเนื้อหา

ติดตั้งบริดจ์ NextPDF Cloudflare

ติดตั้งแพ็กเกจด้วย Composer จากนั้นเพิ่มไคลเอ็นต์ Hypertext Transfer Protocol (HTTP) ที่เป็นไปตาม PHP Standard Recommendation 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) แพ็กเกจผ่านการวิเคราะห์แบบสแตติกด้วย PHPStan Level 10 และไม่ได้แนบเบสไลน์ของตัววิเคราะห์มาด้วย

Terminal window
composer require nextpdf/cloudflare

คอนสตรักเตอร์ของบริดจ์ต้องใช้ ClientInterface ของ PSR-18 หนึ่งตัว RequestFactoryInterface ของ PSR-17 หนึ่งตัว และ StreamFactoryInterface ของ PSR-17 หนึ่งตัว เส้นทางทรานสปอร์ตแบบ pinned ยังใช้ ResponseFactoryInterface ของ PSR-17 หากคุณจัดเตรียมไว้ให้ คุณสามารถใช้การนำไปใช้งานใดก็ได้ที่เป็นไปตามมาตรฐาน โดย README ระบุ Guzzle ไว้เป็นตัวอย่างหนึ่ง:

Terminal window
composer require guzzlehttp/guzzle

Guzzle 7 มีไคลเอ็นต์ PSR-18 และแฟกทอรี PSR-17 ครบทั้งสี่อินเทอร์เฟซ Symfony HttpClient, Buzz และสแต็กอื่นๆที่เป็นไปตามมาตรฐานก็ใช้งานได้เช่นกัน แพ็กเกจออกแบบมาให้เป็นกลางต่อผู้ให้บริการ การทดสอบ tests/Unit/Architecture/PsrConformanceTest.php ยืนยันว่าแพ็กเกจพึ่งพาเฉพาะสัญญา PSR เท่านั้น ไม่ได้พึ่งพาไคลเอ็นต์ที่เป็นรูปธรรมใดๆ

เมื่อไม่สามารถเข้าถึง Worker ได้และเปิดใช้งานตัวสำรองไว้ บริดจ์สามารถส่งต่อการเรนเดอร์ไปยังตัวเรนเดอร์ภายในเครื่อง คุณจัดเตรียมตัวเรนเดอร์นั้นผ่าน NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface บล็อก suggest ใน composer.json ระบุการนำไปใช้งานโดยตรงจากเจ้าของผลิตภัณฑ์:

Terminal window
composer require nextpdf/artisan

การติดตั้ง nextpdf/artisan เพียงอย่างเดียวยังไม่เพียงพอ คุณต้องส่ง LocalRendererFactoryInterface ไปยังคอนสตรักเตอร์ของตัวเรนเดอร์ด้วย หากติดตั้ง Artisan ไว้แต่ไม่ได้เชื่อมต่อแฟกทอรี บริดจ์จะตรวจพบสถานะนั้นและโยน CloudflareNotAvailableException ข้อความของ exception ระบุสาเหตุนี้ไว้อย่างชัดเจน ดู /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 ไม่ว่างเปล่าทั้งคู่ เมธอดนี้ไม่ติดต่อเครือข่าย และตรวจสอบเฉพาะความครบถ้วนของการกำหนดค่าเท่านั้น คุณจึงสามารถใช้เป็น smoke test ในช่วงการดีพลอยได้

  • /integrations/cloudflare/configuration/ — ตัวเลือกการกำหนดค่าทั้งหมด
  • /integrations/cloudflare/quickstart/ — เรียกใช้การเรนเดอร์ครั้งแรกของคุณ
  • /integrations/cloudflare/boot-and-discovery/ — เชื่อมต่อบริดจ์เข้ากับคอนเทนเนอร์ของเฟรมเวิร์ก