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 정적 분석을 통과하며, 분석기 베이스라인은 포함하지 않습니다.
패키지 설치
섹션 제목: “패키지 설치”composer require nextpdf/cloudflareHTTP 클라이언트와 팩토리 추가
섹션 제목: “HTTP 클라이언트와 팩토리 추가”브리지 생성자는 PSR-18 ClientInterface, PSR-17 RequestFactoryInterface, 그리고 PSR-17 StreamFactoryInterface를 요구합니다. 고정 전송(pinned-transport) 경로는 PSR-17 ResponseFactoryInterface가 제공되면 해당 인터페이스도 사용합니다. 규격을 준수하는 구현이라면 무엇이든 동작합니다. README는 한 가지 예로 Guzzle을 명시합니다.
composer require guzzlehttp/guzzleGuzzle 7은 네 가지 PSR-17 팩토리 인터페이스 전부와 PSR-18 클라이언트를 제공합니다. Symfony HttpClient, Buzz, 그리고 규격을 준수하는 다른 스택도 동일하게 유효합니다. 이 패키지는 설계상 특정 벤더에 종속되지 않습니다. tests/Unit/Architecture/PsrConformanceTest.php 테스트는 이 패키지가 구체적인 클라이언트가 아니라 PSR 계약에만 의존함을 검증합니다.
선택 사항: 로컬 Chrome 폴백
섹션 제목: “선택 사항: 로컬 Chrome 폴백”Worker에 연결할 수 없고 폴백이 활성화되어 있으면 브리지는 로컬 렌더러에 위임할 수 있습니다. 해당 렌더러는 NextPDF\Cloudflare\Contract\LocalRendererFactoryInterface를 통해 제공합니다. suggest 블록은 composer.json에서 퍼스트파티 구현을 명시합니다.
composer require nextpdf/artisannextpdf/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()는 workerUrl과 apiToken이 모두 비어 있지 않을 때 true를 반환합니다. 이 메서드는 네트워크에 접속하지 않습니다. 순수한 구성 완전성 검사이므로 배포 시점의 스모크 테스트에 적합합니다.
함께 보기
섹션 제목: “함께 보기”- /integrations/cloudflare/configuration/ — 전체 구성 인터페이스입니다.
- /integrations/cloudflare/quickstart/ — 첫 번째 렌더링을 실행해 봅니다.
- /integrations/cloudflare/boot-and-discovery/ — 브리지를 프레임워크 컨테이너에 연결합니다.