NextPDF Cloudflare: boot en discovery
In een oogopslag
Sectie met titel “In een oogopslag”De brug bevat geen eigen service provider, bundle of auto-discovery-hook. Het pakket bestaat uit een set final classes met expliciete constructors. In deze context betekent “discovery” dat je de samenwerkende objecten kiest die je injecteert en ze bindt in de container van je framework. Deze pagina beschrijft die bedrading en introduceert geen registratiemechanisme dat het pakket niet heeft.
Hoe de renderer-brug wordt ontdekt
Sectie met titel “Hoe de renderer-brug wordt ontdekt”Je construeert CloudflareHtmlRenderer; je ontdekt deze niet. De afhankelijkheden ervan zijn PHP Standard Recommendation (PSR)-contracten: PSR-18, PSR-17 en PSR-3, plus de eigen config- en contracttypen van het pakket. Elk framework dat die samenwerkende objecten kan opbouwen, kan de renderer opbouwen. Het pakket is uitsluitend afhankelijk van PSR-contracten; de test tests/Unit/Architecture/PsrConformanceTest.php bevestigt dat geen enkele concrete client aan de renderer is gekoppeld. Je host-applicatie kan de bestaande HTTP-client-binding ongewijzigd hergebruiken. De NextPDF-adapters voor Laravel, Symfony en CodeIgniter hergebruiken diezelfde PSR-18-binding. Dit pakket levert geen eigen framework-pakket mee.
Bootvolgorde
Sectie met titel “Bootvolgorde”Resolve de samenwerkende objecten in deze volgorde, in lijn met de constructor van CloudflareHtmlRenderer:
- Resolve de PSR-18
ClientInterfaceuit de bestaande HTTP-client-binding van de applicatie. - Resolve de PSR-17
RequestFactoryInterfaceenStreamFactoryInterface; resolve daarnaastResponseFactoryInterfacewanneer je het vastgezette cURL-transport wilt gebruiken. - Bouw een
CloudflareRendererConfigop uit de geresolvede configuratie (zie ‘Configuratie-resolutievolgorde’). - Resolve optioneel een PSR-3
LoggerInterface, eenLocalRendererFactoryInterfaceen een explicieteHtmlSecurityPolicyInterface. - Construeer
CloudflareHtmlRenderermet deze samenwerkende objecten.
Geen van deze stappen maakt contact met het netwerk. De eerste netwerkinteractie vindt plaats wanneer je render() of isAvailable() aanroept.
Container-bindings
Sectie met titel “Container-bindings”Een representatieve binding (framework-agnostische pseudocode):
<?php
declare(strict_types=1);
use NextPDF\Cloudflare\CloudflareHtmlRenderer;use NextPDF\Cloudflare\CloudflareRendererConfig;use Psr\Http\Client\ClientInterface;use Psr\Http\Message\RequestFactoryInterface;use Psr\Http\Message\ResponseFactoryInterface;use Psr\Http\Message\StreamFactoryInterface;use Psr\Log\LoggerInterface;
$container->singleton(CloudflareHtmlRenderer::class, function ($c) { return new CloudflareHtmlRenderer( config: CloudflareRendererConfig::fromArray($c->get('config')['cloudflare']), httpClient: $c->get(ClientInterface::class), requestFactory: $c->get(RequestFactoryInterface::class), streamFactory: $c->get(StreamFactoryInterface::class), logger: $c->get(LoggerInterface::class), responseFactory: $c->get(ResponseFactoryInterface::class), );});Configuratie-resolutievolgorde
Sectie met titel “Configuratie-resolutievolgorde”Het pakket leest zelf geen omgevingsvariabelen. Het accepteert een volledig opgebouwde CloudflareRendererConfig. Resolve de configuratie in de host-applicatie in deze volgorde: eerst omgevingsvariabelen, daarna de gepubliceerde config of framework-config, en tot slot de standaardwaarden van het pakket die in de constructor zijn ingebakken (gedocumenteerd in /integrations/cloudflare/configuration/). CloudflareRendererConfig::fromArray() past de standaardwaarden van de constructor toe op elke ontbrekende of onjuist getypeerde sleutel, zodat een gedeeltelijke config-array voorspelbaar terugvalt in plaats van te falen.
Diagnostiek
Sectie met titel “Diagnostiek”CloudflareRendererConfig::isValid() is het signaal tijdens het booten. Het is een pure controle of zowel workerUrl als apiToken niet leeg zijn en voert geen netwerkaanroep uit, zodat je het als deploy-gate kunt gebruiken. Het runtime-signaal is CloudflareHtmlRenderer::isAvailable(), een geauthenticeerde HTTP HEAD die true retourneert voor een status onder 500 en anders false (zonder ooit een exception te gooien), zodat je het als readiness-probe kunt gebruiken. Een geslaagde probe is een indicatie, geen garantie: de daaropvolgende POST kan alsnog mislukken.
Zie ook
Sectie met titel “Zie ook”- /integrations/cloudflare/integration/ — de volledige stapsgewijze integratiehandleiding.
- /integrations/cloudflare/overview/ — wat de brug is en welke grens die overschrijdt.
- /integrations/cloudflare/configuration/ — elk veld en elke standaardwaarde.
- /integrations/cloudflare/security-and-operations/ — wanneer het vastgezette transport wordt geactiveerd.