NextPDF 백포트 통합
빌드 도구입니다 — 런타임 의존성이 아닙니다. 관리자는 이 패키지를 사용하여 NextPDF의 PHP 7.4 및 PHP 8.1 백포트 배포본을 생성합니다. 애플리케이션은 이 패키지를 런타임 의존성으로 절대 추가해서는 안 됩니다.
한눈에 보기
섹션 제목: “한눈에 보기”통합 지점은 두 가지로 분리됩니다. 빌드 호스트는 빌더 저장소를 릴리스 흐름에 통합합니다. 다운스트림 애플리케이션은 생성된 패키지인 nextpdf/backport을(를) 자체 의존성 트리에 통합합니다. 빌더는 애플리케이션의 의존성 트리에 절대 포함되지 않습니다.
설치(빌드 호스트 전용)
섹션 제목: “설치(빌드 호스트 전용)”빌더는 composer.json에서 "type": "project"을(를) 선언하므로 라이브러리가 아니라 프로젝트 저장소입니다. 따라서 composer require가 아니라 클론과 dev 설치 방식으로 통합합니다:
git clone https://github.com/nextpdf-labs/backport.gitcd backportgit checkout PHP74composer install --prefer-dist --no-progress생성하려는 대상에 해당하는 브랜치를 체크아웃합니다. PHP 7.4 코어 전용 배포본에는 PHP74(기본값)를 사용합니다. 모든 어댑터를 포함하는 PHP 8.1 배포본에는 PHP81을(를) 사용합니다. --no-dev를 전달하지 마십시오. 빌드에는 Rector 엔진, PHPStan, PHPUnit가 필요하며, 이들은 dev 의존성입니다. composer.json(type, require-dev) 및 /integrations/backport/overview/.의 이중 브랜치 모델과 대조하여 검증되었습니다.
부트 및 자동 검색
섹션 제목: “부트 및 자동 검색”프레임워크 자동 검색은 없습니다. 빌드 시점에 scripts/build.php가 명시적인 require_once와 Composer PSR-4 자동 로딩을 통해 Rector와 세 개의 사용자 정의 추상 구문 트리 규칙을 연결합니다. 전체 부트 시퀀스와 소스 모듈 검색은 /integrations/backport/boot-and-discovery/.에 문서화되어 있습니다.
컨테이너 바인딩
섹션 제목: “컨테이너 바인딩”해당 없음. 빌더는 의존성 주입 컨테이너가 없는 CLI 도구입니다. 저장소 구조와 composer.jsonautoload를 기준으로 검증되었습니다.
게시 구성
섹션 제목: “게시 구성”“게시 구성”은 특정 파일이 아닙니다. 빌드 플래그 집합과 scripts/adjust-composer.php에 고정된 패키지 정의 집합을 뜻합니다:
- 대상 맵.
--target=php81은(는)nextpdf/backport(제약 조건>=8.1 <8.5, 코어, 어댑터, compat-legacy를 대체)를 생성하며, 포함된 경우nextpdf/backport-pro도 생성합니다.--target=php74은(는)nextpdf/backport(제약 조건>=7.4 <8.1,nextpdf/core만 대체)를 생성하며 Pro는 없습니다. - 제외.
--no-pro는 PHP 8.1 대상에서 Pro 패키지를 제외합니다. PHP 7.4 대상은 구성상 Pro와 모든 어댑터를 제외합니다. - 버전. 빌드는
--version(또는 앞의v를 제거한 릴리스 태그)을(를) 생성된composer.json과CHANGELOG.md에 기록합니다.
scripts/build.php 및 scripts/adjust-composer.php(generatePublicComposer(), generateProComposer(), buildReplace())와 대조하여 검증되었습니다. 전체 플래그 레퍼런스는 /integrations/backport/configuration/.에서 확인할 수 있습니다.
릴리스 흐름 통합
섹션 제목: “릴리스 흐름 통합”빌더는 .github/workflows/에 있는 GitHub Actions 워크플로를 통해 릴리스 흐름에 통합됩니다. 0-ci.yml은(는) 두 영구 브랜치 중 하나에 대한 모든 변경을 PHPStan, 규칙 테스트, 드라이런으로 게이트합니다. build.yml은(는) source-release 저장소 디스패치 이벤트 또는 수동 디스패치에서 배포본을 생성하고 릴리스합니다. 전체 운영 모델(트리거, 레인, 검증 매트릭스, 공유 릴리스)은 /integrations/backport/production-usage/.에 문서화되어 있습니다.
출력 소비 스모크 테스트
섹션 제목: “출력 소비 스모크 테스트”릴리스 파이프라인이 통합 스모크 테스트 역할을 합니다. 빌드 후 워크플로는 러너를 대상 PHP로 전환하고 생성된 소스 전체에 대해 php -l을(를) 실행합니다. 그런 다음 생성된 패키지를 검증 매트릭스 전체에서 설치하고 실행합니다(PHP 8.1 레인은 PHP 8.1–8.4, PHP 7.4 레인은 PHP 7.4 및 8.0). 대상 런타임이 거부할 배포본은 릴리스에 도달하지 않습니다. .github/workflows/build.yml(구문 검사 및 validate-* 작업)과 대조하여 검증되었습니다. 검증 단계가 출력하는 Docker 명령으로 로컬에서 생성된 출력을 동일한 방식으로 스모크 테스트할 수 있습니다 — /integrations/backport/quickstart/.를 참조하십시오.
공개 진입점
섹션 제목: “공개 진입점”빌더의 공개 표면은 bin/ 실행 파일이 아니라 CLI 오케스트레이터와 그 Composer 스크립트 별칭입니다.
| 진입점 | 해석 대상 | 목적 |
|---|---|---|
composer build | php scripts/build.php | 전체 빌드 |
composer build:dry | php scripts/build.php --dry-run | 드라이런 빌드 |
composer test | phpunit | 규칙 픽스처 스위트 |
composer analyse | phpstan analyse rector/rules scripts --level=10 | 빌드 코드 정적 분석 |
composer.jsonscripts를 기준으로 검증되었습니다. 다운스트림 패키지의 진입점은 원래의 NextPDF\ API 심볼이며, 백포트에 의해 변경되지 않습니다. 패키지는 소스 패키지를 대체하고 단일 PSR-4 접두사를 통해 병합된 트리를 자동 로딩합니다.
관련 항목
섹션 제목: “관련 항목”- /integrations/backport/overview/ — 빌더가 무엇이고 무엇을 생성하는지.
- /integrations/backport/boot-and-discovery/ — 부트 시퀀스와 소스 검색.
- /integrations/backport/install/ — 빌드 호스트와 다운스트림 설치.
- /integrations/backport/production-usage/ — 릴리스 파이프라인.