Enterprise edition
Common
At a glance
Section titled “At a glance”NextPDF Enterprise ships a small set of shared primitives reused across Enterprise modules. The first is a normalized bounding box for resolution-independent spatial positioning. These are value objects with no compliance, conformance, or cryptographic behavior.
Availability & licensing
Section titled “Availability & licensing”This capability ships in NextPDF Enterprise (nextpdf/enterprise) and activates with an Enterprise-tier license envelope. A deployment without that entitlement does not load the capability’s classes. Compare editions and get a license.
The Enterprise package installs next to the Core package; these shared primitives are consumed internally by the other Enterprise modules and resolve with the package. They have no Core-tier or Pro-tier equivalent.
Install
Section titled “Install”composer require nextpdf/enterprise:^3Conceptual overview
Section titled “Conceptual overview”BoundingBox is an immutable value object whose four coordinates — x, y, width, height — are normalized to the [0.0, 1.0] range relative to page dimensions. Because coordinates are normalized, the box is resolution-independent and can be reused across Enterprise modules that reason about page geometry. The constructor validates that every coordinate is within range and that x + width and y + height do not exceed 1.0 (within a small floating-point tolerance), raising an argument error otherwise.
It exposes area(), contains(self $other), and overlaps(self $other). Zero-area boxes (degenerate points or lines) cannot overlap by definition.
What this module asserts
Section titled “What this module asserts”This module provides validated geometry primitives. It makes no compliance or conformance claim and performs no I/O.
Tier boundary
Section titled “Tier boundary”Common is an Enterprise-only support surface that other Enterprise modules consume. It does not duplicate or replace Core geometry; it provides the small, validated primitives the Enterprise modules share.
Why it works this way
Section titled “Why it works this way”The load-bearing decision is to normalize every coordinate to the [0.0, 1.0] range and validate it in the constructor. Normalized coordinates make the box resolution-independent, so a region described once stays correct at any page size or render scale. Fail-closed construction means an invalid or overflowing box cannot exist: the constructor rejects it rather than clamping or guessing. Consuming Enterprise modules therefore never re-check geometry they receive, because a constructed box is already known-valid. Immutability keeps a shared box safe to pass between modules without defensive copies.
Design background: An API that refuses to guess.
API surface
Section titled “API surface”| Class | Responsibility |
|---|---|
BoundingBox | Immutable normalized box; area(), contains(), overlaps(). |
Code sample — Quick start
Section titled “Code sample — Quick start”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));Code sample — Production
Section titled “Code sample — Production”$region = new BoundingBox($x, $y, $w, $h); // throws on out-of-range input
if ($region->overlaps($redactionZone)) { $logger->info('common.overlap', ['area' => $region->area()]);}Edge cases & gotchas
Section titled “Edge cases & gotchas”- Constructing with any coordinate outside
[0.0, 1.0], or withx + width/y + heightover 1.0, raises an argument error — validate inputs upstream. - Zero-area boxes never overlap; account for that when computing intersections.
- Coordinates are normalized, not pixels; convert at the rendering boundary.
Performance
Section titled “Performance”All operations are constant-time arithmetic on four floats.
Security notes
Section titled “Security notes”BoundingBox performs no I/O and holds no document content. The constructor rejects out-of-range geometry, preventing degenerate values from propagating into consuming modules.
Data residency & PII mitigations
Section titled “Data residency & PII mitigations”This module holds no personal data and performs no persistence or network I/O. Residency considerations do not apply.
Safe telemetry & log scrubbing
Section titled “Safe telemetry & log scrubbing”Box coordinates and areas are non-sensitive geometry and are safe to log.
Conformance
Section titled “Conformance”This module implements no normative standard and makes no conformance claim. It is a geometry primitive.
FIPS-mode behavior
Section titled “FIPS-mode behavior”This module performs no cryptographic operations; FIPS mode does not apply.
Threat model
Section titled “Threat model”The only input is four floats. The constructor’s range and bounds validation is the mitigation: invalid geometry cannot be constructed.
Behavior contract
Section titled “Behavior contract”BoundingBoxis an immutable value object whose four coordinates are normalized to the[0.0, 1.0]range relative to page dimensions, making it resolution-independent.- The constructor validates that every coordinate is in range and that
x + widthandy + heightdo not exceed 1.0 (within a small floating-point tolerance), raising an argument error otherwise. - It exposes
area(),contains(), andoverlaps(); zero-area boxes never overlap by definition. - The module performs no I/O, holds no document content, and makes no compliance or conformance claim.
Publication boundary
Section titled “Publication boundary”This page documents externally observable behavior and the supported public API surface only. Internal namespace paths, helper classes, mechanism tables, runbook filenames, and ticket prefixes are out of scope.
Core fallback
Section titled “Core fallback”Core fallback — none; this is an Enterprise-only shared support primitive. It does not duplicate or replace Core geometry and has no Core-tier equivalent.
Pro fallback
Section titled “Pro fallback”Pro fallback — none; this capability has no Pro-tier equivalent. The shared BoundingBox primitive ships in the nextpdf/enterprise package only.
Enterprise boundary note
Section titled “Enterprise boundary note”The validated geometry primitive is described at the behavior level. It is an Enterprise-only support surface that other Enterprise modules consume; there are no internal sub-mechanisms beyond the documented contract.
Deployment boundary
Section titled “Deployment boundary”Deployment boundary — none applicable; this module performs no persistence, no network I/O, and holds no document content or personal data. There is no operator-owned resource for this surface.
Legal-compliance boundary
Section titled “Legal-compliance boundary”No export-control restriction applies to this surface. The module implements no normative standard and makes no conformance, certification, or regulatory claim. This documentation is not a legal opinion.
See also
Section titled “See also”- Validation — consumes shared primitives.
- Evidence — consumes shared primitives.
- Common — Deep Reference — deep reference for the shared primitives.