Enterprise 에디션
공통
한눈에 보기
섹션 제목: “한눈에 보기”NextPDF Enterprise는 Enterprise 모듈 전반에서 재사용되는 작은 공유 프리미티브 집합을 제공합니다. 첫 번째는 해상도 독립적 공간 위치 지정을 위한 정규화된 경계 상자입니다. 이것들은 규정 준수, 적합성, 암호화 동작이 없는 값 객체입니다.
가용성 및 라이선싱
섹션 제목: “가용성 및 라이선싱”이 기능은 NextPDF Enterprise(nextpdf/enterprise)로 제공되며 Enterprise 계층 라이선스 봉투로 활성화됩니다. 해당 엔타이틀먼트가 없는 배포는 이 기능의 클래스를 로드하지 않습니다. 에디션을 비교하고 라이선스 받기.
Enterprise 패키지는 Core 패키지 옆에 설치됩니다. 이러한 공유 프리미티브는 다른 Enterprise 모듈에 의해 내부적으로 소비되며 패키지와 함께 해석됩니다. Core 계층이나 Pro 계층의 등가물이 없습니다.
composer require nextpdf/enterprise:^3개념 개요
섹션 제목: “개념 개요”BoundingBox는 네 좌표 — x, y, width, height —가 페이지 치수에 상대적으로 [0.0, 1.0] 범위로 정규화된 불변 값 객체입니다. 좌표가 정규화되어 있으므로 이 상자는 해상도 독립적이며, 페이지 기하 구조를 다루는 Enterprise 모듈 전반에서 재사용될 수 있습니다. 생성자는 모든 좌표가 범위 내에 있는지, 그리고 x + width 및 y + height가 1.0을 초과하지 않는지(작은 부동소수점 허용 오차 내에서) 검증하며, 그렇지 않으면 인자 오류를 발생시킵니다.
area(), contains(self $other), overlaps(self $other)를 노출합니다. 면적이 0인 상자(퇴화된 점 또는 선)는 정의상 겹칠 수 없습니다.
이 모듈이 단언하는 것
섹션 제목: “이 모듈이 단언하는 것”이 모듈은 검증된 기하 프리미티브를 제공합니다. 어떤 규정 준수나 적합성 주장도 하지 않으며 I/O를 수행하지 않습니다.
계층 경계
섹션 제목: “계층 경계”Common은 다른 Enterprise 모듈이 소비하는 Enterprise 전용 지원 표면입니다. Core 기하 구조를 복제하거나 대체하지 않습니다. Enterprise 모듈이 공유하는 작고 검증된 프리미티브를 제공합니다.
이렇게 작동하는 이유
섹션 제목: “이렇게 작동하는 이유”핵심적인 설계 결정은 모든 좌표를 [0.0, 1.0] 범위로 정규화하고 생성자에서 검증하는 것입니다. 정규화된 좌표는 상자를 해상도 독립적으로 만들어, 한 번 기술된 영역이 어떤 페이지 크기나 렌더 배율에서도 정확하게 유지됩니다. Fail-closed 구성은 유효하지 않거나 넘치는 상자가 존재할 수 없음을 의미합니다. 생성자는 클램핑하거나 추측하는 대신 그것을 거부합니다. 따라서 소비하는 Enterprise 모듈은 전달받은 기하 구조를 결코 다시 확인하지 않습니다. 구성된 상자는 이미 유효함이 알려져 있기 때문입니다. 불변성은 공유 상자를 방어적 복사 없이 모듈 간에 안전하게 전달할 수 있게 합니다.
설계 배경: 추측하기를 거부하는 API.
API 표면
섹션 제목: “API 표면”| 클래스 | 책임 |
|---|---|
BoundingBox | 불변 정규화 상자; area(), contains(), overlaps(). |
코드 샘플 — 빠른 시작
섹션 제목: “코드 샘플 — 빠른 시작”use NextPDF\Enterprise\Common\BoundingBox;
$box = new BoundingBox(0.1, 0.1, 0.5, 0.2);$inside = $box->contains(new BoundingBox(0.2, 0.15, 0.1, 0.02));코드 샘플 — 프로덕션
섹션 제목: “코드 샘플 — 프로덕션”$region = new BoundingBox($x, $y, $w, $h); // throws on out-of-range input
if ($region->overlaps($redactionZone)) { $logger->info('common.overlap', ['area' => $region->area()]);}엣지 케이스 및 함정
섹션 제목: “엣지 케이스 및 함정”- 어떤 좌표든
[0.0, 1.0]밖이거나,x + width/y + height가 1.0을 초과하면 인자 오류가 발생합니다 — 상류에서 입력을 검증하십시오. - 면적이 0인 상자는 결코 겹치지 않습니다. 교차를 계산할 때 이를 고려하십시오.
- 좌표는 픽셀이 아니라 정규화된 값입니다. 렌더링 경계에서 변환하십시오.
모든 작업은 네 개의 부동소수점에 대한 상수 시간 산술입니다.
보안 참고
섹션 제목: “보안 참고”BoundingBox는 I/O를 수행하지 않으며 문서 콘텐츠를 담지 않습니다. 생성자는 범위를 벗어난 기하 구조를 거부하여 퇴화된 값이 소비 모듈로 전파되는 것을 방지합니다.
데이터 레지던시 및 PII 완화
섹션 제목: “데이터 레지던시 및 PII 완화”이 모듈은 개인 데이터를 담지 않으며 지속성이나 네트워크 I/O를 수행하지 않습니다. 레지던시 고려 사항은 적용되지 않습니다.
안전한 텔레메트리 및 로그 스크러빙
섹션 제목: “안전한 텔레메트리 및 로그 스크러빙”상자 좌표와 면적은 민감하지 않은 기하 구조이며 로그에 기록해도 안전합니다.
적합성
섹션 제목: “적합성”이 모듈은 어떤 규범적 표준도 구현하지 않으며 적합성 주장을 하지 않습니다. 기하 프리미티브입니다.
FIPS 모드 동작
섹션 제목: “FIPS 모드 동작”이 모듈은 암호화 작업을 수행하지 않습니다. FIPS 모드는 적용되지 않습니다.
위협 모델
섹션 제목: “위협 모델”유일한 입력은 네 개의 부동소수점입니다. 생성자의 범위 및 경계 검증이 완화책입니다. 유효하지 않은 기하 구조는 구성될 수 없습니다.
동작 계약
섹션 제목: “동작 계약”BoundingBox는 네 좌표가 페이지 치수에 상대적으로[0.0, 1.0]범위로 정규화된 불변 값 객체이며, 따라서 해상도 독립적입니다.- 생성자는 모든 좌표가 범위 내에 있는지, 그리고
x + width및y + height가 1.0을 초과하지 않는지(작은 부동소수점 허용 오차 내에서) 검증하며, 그렇지 않으면 인자 오류를 발생시킵니다. area(),contains(),overlaps()를 노출합니다. 면적이 0인 상자는 정의상 결코 겹치지 않습니다.- 모듈은 I/O를 수행하지 않고, 문서 콘텐츠를 담지 않으며, 어떤 규정 준수나 적합성 주장도 하지 않습니다.
공개 경계
섹션 제목: “공개 경계”이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만 문서화합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위 밖입니다.
Core 폴백
섹션 제목: “Core 폴백”Core 폴백 — 없음. 이것은 Enterprise 전용 공유 지원 프리미티브입니다. Core 기하 구조를 복제하거나 대체하지 않으며 Core 계층의 등가물이 없습니다.
Pro 폴백
섹션 제목: “Pro 폴백”Pro 폴백 — 없음. 이 기능에는 Pro 계층의 등가물이 없습니다. 공유 BoundingBox 프리미티브는 nextpdf/enterprise 패키지로만 제공됩니다.
Enterprise 경계 참고
섹션 제목: “Enterprise 경계 참고”검증된 기하 프리미티브는 동작 수준에서 설명됩니다. 다른 Enterprise 모듈이 소비하는 Enterprise 전용 지원 표면이며, 문서화된 계약을 넘어서는 내부 하위 메커니즘은 없습니다.
배포 경계
섹션 제목: “배포 경계”배포 경계 — 적용 사항 없음. 이 모듈은 지속성, 네트워크 I/O를 수행하지 않으며 문서 콘텐츠나 개인 데이터를 담지 않습니다. 이 표면에는 운영자 소유 리소스가 없습니다.
법률 준수 경계
섹션 제목: “법률 준수 경계”이 표면에는 수출 통제 제한이 적용되지 않습니다. 모듈은 어떤 규범적 표준도 구현하지 않으며 적합성, 인증, 규제 주장을 하지 않습니다. 이 문서는 법률 의견이 아닙니다.
함께 보기
섹션 제목: “함께 보기”- Validation — 공유 프리미티브를 소비합니다.
- Evidence — 공유 프리미티브를 소비합니다.
- Common — Deep Reference — 공유 프리미티브에 대한 심화 참조.