Ga naar inhoud

De NextPDF Cloudflare-bridge installeren

Installeer het pakket met Composer. Voeg vervolgens een HTTP-client (Hypertext Transfer Protocol) toe die PHP Standard Recommendation 18 (PSR-18) implementeert, plus factories die PSR-17 implementeren. De bridge declareert de interfaces, maar levert geen concrete HTTP-client mee.

De bridge leest deze afhankelijkheden uit de sectie require in composer.json:

AfhankelijkheidBeperking
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

Het pakket laadt NextPDF\Cloudflare\ automatisch vanuit src/Cloudflare/ (PSR-4). Het doorstaat statische analyse op PHPStan Level 10 en wordt zonder analyzer-baseline geleverd.

Terminal window
composer require nextpdf/cloudflare

De constructor van de bridge vereist een PSR-18-ClientInterface, een PSR-17-RequestFactoryInterface en een PSR-17-StreamFactoryInterface. Het pad voor vastgepind transport gebruikt daarnaast een PSR-17-ResponseFactoryInterface wanneer er een wordt opgegeven. Elke conforme implementatie is geschikt. De README noemt Guzzle als één voorbeeld:

Terminal window
composer require guzzlehttp/guzzle

Guzzle 7 levert de PSR-18-client en alle vier de PSR-17-factory-interfaces. Symfony HttpClient, Buzz en andere conforme stacks werken ook. Het pakket is bewust leveranciersonafhankelijk ontworpen. De test tests/Unit/Architecture/PsrConformanceTest.php verifieert dat het pakket alleen afhankelijk is van PSR-contracten, niet van een concrete client.

Wanneer de Worker onbereikbaar is en fallback is ingeschakeld, kan de bridge de weergave delegeren aan een lokale renderer. Die renderer wordt geleverd via NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface. Het blok suggest in composer.json noemt de first-party-implementatie:

Terminal window
composer require nextpdf/artisan

Alleen nextpdf/artisan installeren is niet voldoende. Daarnaast moet er een LocalRendererFactoryInterface aan de constructor van de renderer worden doorgegeven. Als Artisan is geïnstalleerd maar geen factory is gekoppeld, detecteert de bridge die toestand en werpt een CloudflareNotAvailableException. Het bericht van de exception vermeldt precies dat. Zie /integrations/cloudflare/production-usage/ voor die koppeling.

<?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() retourneert true wanneer zowel workerUrl als apiToken niet leeg zijn. De methode maakt geen contact met het netwerk. Hij controleert alleen de volledigheid van de configuratie en is daardoor bruikbaar als smoke-test op het moment van implementatie.

  • /integrations/cloudflare/configuration/ — alle configuratieopties.
  • /integrations/cloudflare/quickstart/ — voer een eerste weergave uit.
  • /integrations/cloudflare/boot-and-discovery/ — koppel de bridge in een framework-container.