콘텐츠로 이동

NextPDF Cloudflare 브리지 설치

Composer로 패키지를 설치합니다. 그런 다음 PSR-18 HTTP 클라이언트와 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

브리지 생성자는 PSR-18 ClientInterface, PSR-17 RequestFactoryInterface, 그리고 PSR-17 StreamFactoryInterface를 요구합니다. 고정 전송(pinned-transport) 경로는 PSR-17 ResponseFactoryInterface가 제공되면 해당 인터페이스도 사용합니다. 규격을 준수하는 구현이라면 무엇이든 동작합니다. README는 한 가지 예로 Guzzle을 명시합니다.

Terminal window
composer require guzzlehttp/guzzle

Guzzle 7은 네 가지 PSR-17 팩토리 인터페이스 전부와 PSR-18 클라이언트를 제공합니다. 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을 발생시킵니다. 연결 방법은 /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()workerUrlapiToken이 모두 비어 있지 않을 때 true를 반환합니다. 이 메서드는 네트워크에 접속하지 않습니다. 순수한 구성 완전성 검사이므로 배포 시점의 스모크 테스트에 적합합니다.

  • /integrations/cloudflare/configuration/ — 전체 구성 인터페이스입니다.
  • /integrations/cloudflare/quickstart/ — 첫 번째 렌더링을 실행해 봅니다.
  • /integrations/cloudflare/boot-and-discovery/ — 브리지를 프레임워크 컨테이너에 연결합니다.