Lewati ke konten

Memasang jembatan NextPDF Cloudflare

Pasang paket dengan Composer. Setelah itu, tambahkan klien Hypertext Transfer Protocol (HTTP) yang mengimplementasikan PHP Standard Recommendation 18 (PSR-18) serta factory yang mengimplementasikan PSR-17. Jembatan ini hanya mendeklarasikan antarmukanya; klien HTTP konkret tidak disertakan.

Jembatan ini membaca dependensi berikut dari bagian require pada composer.json:

DependensiBatasan
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

Paket ini melakukan autoload NextPDF\Cloudflare\ dari src/Cloudflare/ (PSR-4). Paket ini lolos analisis statis PHPStan Level 10 dan tidak menyertakan baseline penganalisis.

Terminal window
composer require nextpdf/cloudflare

Konstruktor jembatan ini memerlukan ClientInterface PSR-18, RequestFactoryInterface PSR-17, dan StreamFactoryInterface PSR-17. Jalur transport tersemat juga menggunakan ResponseFactoryInterface PSR-17 jika Anda menyediakannya. Anda dapat menggunakan implementasi apa pun yang patuh. README mencantumkan Guzzle sebagai salah satu contoh:

Terminal window
composer require guzzlehttp/guzzle

Guzzle 7 menyediakan klien PSR-18 serta keempat antarmuka factory PSR-17. Symfony HttpClient, Buzz, dan tumpukan lain yang patuh juga dapat digunakan. Paket ini dirancang netral terhadap vendor. Pengujian tests/Unit/Architecture/PsrConformanceTest.php menegaskan bahwa paket ini hanya bergantung pada kontrak PSR, bukan pada klien konkret tertentu.

Jika Worker tidak dapat dijangkau dan fallback diaktifkan, jembatan ini dapat mendelegasikan proses render ke renderer lokal. Anda menyediakan renderer tersebut melalui NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface. Blok suggest pada composer.json mencantumkan implementasi resmi:

Terminal window
composer require nextpdf/artisan

Memasang nextpdf/artisan saja tidak cukup. Anda juga harus meneruskan LocalRendererFactoryInterface ke konstruktor renderer. Jika Artisan terpasang tetapi tidak ada factory yang dihubungkan, jembatan ini mendeteksi kondisi tersebut dan memunculkan CloudflareNotAvailableException. Pesan eksepsinya menyatakan hal itu secara tepat. Lihat /integrations/cloudflare/production-usage/ untuk cara menyambungkannya.

<?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() mengembalikan true ketika workerUrl dan apiToken sama-sama tidak kosong. Metode ini tidak menghubungi jaringan. Metode ini hanya memeriksa kelengkapan konfigurasi, sehingga Anda dapat menggunakannya sebagai smoke test saat deploy.

  • /integrations/cloudflare/configuration/ — semua opsi konfigurasi.
  • /integrations/cloudflare/quickstart/ — jalankan render pertama Anda.
  • /integrations/cloudflare/boot-and-discovery/ — sambungkan jembatan ini ke kontainer framework.