Zum Inhalt springen

NextPDF-Cloudflare-Bridge installieren

Installieren Sie das Paket mit Composer. Ergänzen Sie anschließend einen PSR-18-HTTP-Client und eine PSR-17-Factory-Implementierung. Die Bridge deklariert die Schnittstellen; sie bündelt keinen konkreten HTTP-Client.

Die Bridge liest die folgenden Anforderungen aus dem Abschnitt require von composer.json:

AbhängigkeitConstraint
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

Das Paket lädt NextPDF\Cloudflare\ automatisch aus src/Cloudflare/ (PSR-4). Es besteht die statische Analyse mit PHPStan Level 10 und liefert keine Analyse-Baseline aus.

Terminal-Fenster
composer require nextpdf/cloudflare

Der Konstruktor der Bridge benötigt ein PSR-18-ClientInterface, ein PSR-17-RequestFactoryInterface und ein PSR-17-StreamFactoryInterface. Der fest verdrahtete Transportpfad verwendet zudem ein PSR-17-ResponseFactoryInterface, wenn Sie eines bereitstellen. Jede konforme Implementierung funktioniert. Die README nennt Guzzle als Beispiel:

Terminal-Fenster
composer require guzzlehttp/guzzle

Guzzle 7 stellt alle vier PSR-17-Factory-Schnittstellen und den PSR-18-Client bereit. Symfony HttpClient, Buzz und andere konforme Stacks sind ebenso gültig. Das Paket ist konstruktionsbedingt herstellerunabhängig. Der Test tests/Unit/Architecture/PsrConformanceTest.php stellt sicher, dass das Paket nur von PSR-Verträgen und nicht von einem konkreten Client abhängt.

Wenn der Worker nicht erreichbar ist und der Fallback aktiviert ist, kann die Bridge an einen lokalen Renderer delegieren. Diesen Renderer stellen Sie über NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface bereit. Der Block suggest in composer.json nennt die hauseigene Implementierung:

Terminal-Fenster
composer require nextpdf/artisan

Die Installation von nextpdf/artisan allein genügt nicht. Sie müssen zusätzlich ein LocalRendererFactoryInterface an den Konstruktor des Renderers übergeben. Die Bridge erkennt, wenn Artisan installiert ist, aber keine Factory verdrahtet wurde. Sie löst dann eine CloudflareNotAvailableException aus, deren Meldung genau diesen Zustand beschreibt. Siehe /integrations/cloudflare/production-usage/ für die Verdrahtung.

<?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() gibt true zurück, wenn sowohl workerUrl als auch apiToken nicht leer sind. Die Methode kontaktiert das Netzwerk nicht. Es handelt sich um eine reine Prüfung der Konfigurationsvollständigkeit, die sich für einen Smoke-Test zum Deployment-Zeitpunkt eignet.

  • /integrations/cloudflare/configuration/ — die vollständige Konfigurationsschnittstelle.
  • /integrations/cloudflare/quickstart/ — Ihr erstes Rendering.
  • /integrations/cloudflare/boot-and-discovery/ — die Bridge in einen Framework-Container einbinden.