Enterprise Edition
Common
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“NextPDF Enterprise liefert eine kleine Menge gemeinsamer Primitive, die über Enterprise-Module hinweg wiederverwendet werden. Das erste ist eine normalisierte Bounding Box für auflösungsunabhängige räumliche Positionierung. Dies sind Value Objects ohne Compliance-, Konformitäts- oder kryptografisches Verhalten.
Verfügbarkeit und Lizenzierung
Abschnitt betitelt „Verfügbarkeit und Lizenzierung“Diese Fähigkeit wird in NextPDF Enterprise (nextpdf/enterprise) ausgeliefert und aktiviert sich mit einem Lizenz-Envelope der Enterprise-Stufe. Eine Bereitstellung ohne diese Berechtigung lädt die Klassen der Fähigkeit nicht. Editionen vergleichen und Lizenz erwerben.
Das Enterprise-Paket installiert sich neben dem Core-Paket; diese gemeinsamen Primitive werden intern von den anderen Enterprise-Modulen konsumiert und werden mit dem Paket aufgelöst. Sie haben kein Äquivalent auf der Core-Stufe oder der Pro-Stufe.
Installation
Abschnitt betitelt „Installation“composer require nextpdf/enterprise:^3Konzeptioneller Überblick
Abschnitt betitelt „Konzeptioneller Überblick“BoundingBox ist ein unveränderliches Value Object, dessen vier Koordinaten — x, y, width, height — relativ zu den Seitendimensionen auf den Bereich [0.0, 1.0] normalisiert sind. Weil die Koordinaten normalisiert sind, ist die Box auflösungsunabhängig und kann über Enterprise-Module hinweg wiederverwendet werden, die über Seitengeometrie räsonieren. Der Konstruktor validiert, dass jede Koordinate im Bereich liegt und dass x + width und y + height 1.0 nicht überschreiten (innerhalb einer kleinen Gleitkomma-Toleranz), und löst andernfalls einen Argumentfehler aus.
Es stellt area(), contains(self $other) und overlaps(self $other) bereit. Boxen mit null Fläche (entartete Punkte oder Linien) können sich per Definition nicht überlappen.
Was dieses Modul behauptet
Abschnitt betitelt „Was dieses Modul behauptet“Dieses Modul stellt validierte Geometrie-Primitive bereit. Es erhebt keinen Compliance- oder Konformitätsanspruch und führt keine I/O aus.
Stufengrenze
Abschnitt betitelt „Stufengrenze“Common ist eine Enterprise-exklusive Support-Oberfläche, die andere Enterprise-Module konsumieren. Es dupliziert oder ersetzt die Core-Geometrie nicht; es stellt die kleinen, validierten Primitive bereit, die die Enterprise-Module teilen.
Warum es so funktioniert
Abschnitt betitelt „Warum es so funktioniert“Die tragende Entscheidung ist, jede Koordinate auf den Bereich [0.0, 1.0] zu normalisieren und sie im Konstruktor zu validieren. Normalisierte Koordinaten machen die Box auflösungsunabhängig, sodass eine einmal beschriebene Region bei jeder Seitengröße oder jedem Render-Maßstab korrekt bleibt. Fail-closed-Konstruktion bedeutet, dass eine ungültige oder überlaufende Box nicht existieren kann: Der Konstruktor weist sie zurück, statt zu begrenzen oder zu raten. Konsumierende Enterprise-Module überprüfen daher nie erneut die Geometrie, die sie erhalten, weil eine konstruierte Box bereits als gültig bekannt ist. Unveränderlichkeit macht eine gemeinsame Box sicher weitergebbar zwischen Modulen ohne defensive Kopien.
Designhintergrund: Eine API, die sich weigert zu raten.
API-Oberfläche
Abschnitt betitelt „API-Oberfläche“| Class | Responsibility |
|---|---|
BoundingBox | Unveränderliche normalisierte Box; area(), contains(), overlaps(). |
Codebeispiel — Schnellstart
Abschnitt betitelt „Codebeispiel — Schnellstart“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));Codebeispiel — Produktion
Abschnitt betitelt „Codebeispiel — Produktion“$region = new BoundingBox($x, $y, $w, $h); // throws on out-of-range input
if ($region->overlaps($redactionZone)) { $logger->info('common.overlap', ['area' => $region->area()]);}Sonderfälle und Stolperfallen
Abschnitt betitelt „Sonderfälle und Stolperfallen“- Das Konstruieren mit einer Koordinate außerhalb von
[0.0, 1.0]oder mitx + width/y + heightüber 1.0 löst einen Argumentfehler aus — validieren Sie Eingaben vorgelagert. - Boxen mit null Fläche überlappen sich nie; berücksichtigen Sie das bei der Berechnung von Schnittmengen.
- Koordinaten sind normalisiert, keine Pixel; konvertieren Sie an der Rendering-Grenze.
Performance
Abschnitt betitelt „Performance“Alle Operationen sind konstantzeitige Arithmetik auf vier Floats.
Sicherheitshinweise
Abschnitt betitelt „Sicherheitshinweise“BoundingBox führt keine I/O aus und hält keinen Dokumenteninhalt. Der Konstruktor weist Geometrie außerhalb des Bereichs zurück und verhindert so, dass entartete Werte in konsumierende Module übergehen.
Datenresidenz & PII-Minderungen
Abschnitt betitelt „Datenresidenz & PII-Minderungen“Dieses Modul hält keine personenbezogenen Daten und führt keine Persistenz oder Netzwerk-I/O aus. Residenzerwägungen sind nicht anwendbar.
Sichere Telemetrie & Log-Bereinigung
Abschnitt betitelt „Sichere Telemetrie & Log-Bereinigung“Box-Koordinaten und -Flächen sind nicht-sensible Geometrie und sicher zu protokollieren.
Konformität
Abschnitt betitelt „Konformität“Dieses Modul implementiert keinen normativen Standard und erhebt keinen Konformitätsanspruch. Es ist ein Geometrie-Primitiv.
FIPS-mode-Verhalten
Abschnitt betitelt „FIPS-mode-Verhalten“Dieses Modul führt keine kryptografischen Operationen aus; der FIPS-Modus ist nicht anwendbar.
Bedrohungsmodell
Abschnitt betitelt „Bedrohungsmodell“Die einzige Eingabe sind vier Floats. Die Bereichs- und Grenzvalidierung des Konstruktors ist die Mitigation: ungültige Geometrie kann nicht konstruiert werden.
Verhaltensvertrag
Abschnitt betitelt „Verhaltensvertrag“BoundingBoxist ein unveränderliches Value Object, dessen vier Koordinaten relativ zu den Seitendimensionen auf den Bereich[0.0, 1.0]normalisiert sind, was es auflösungsunabhängig macht.- Der Konstruktor validiert, dass jede Koordinate im Bereich liegt und dass
x + widthundy + height1.0 nicht überschreiten (innerhalb einer kleinen Gleitkomma-Toleranz), und löst andernfalls einen Argumentfehler aus. - Es stellt
area(),contains()undoverlaps()bereit; Boxen mit null Fläche überlappen sich per Definition nie. - Das Modul führt keine I/O aus, hält keinen Dokumenteninhalt und erhebt keinen Compliance- oder Konformitätsanspruch.
Publikationsgrenze
Abschnitt betitelt „Publikationsgrenze“Diese Seite dokumentiert ausschließlich extern beobachtbares Verhalten und die unterstützte öffentliche API-Oberfläche. Interne Namespace-Pfade, Hilfsklassen, Mechanismustabellen, Runbook-Dateinamen und Ticket-Präfixe liegen außerhalb des Geltungsbereichs.
Core-Fallback
Abschnitt betitelt „Core-Fallback“Core-Fallback — keiner; dies ist ein Enterprise-exklusives gemeinsames Support-Primitiv. Es dupliziert oder ersetzt die Core-Geometrie nicht und hat kein Core-Stufen-Äquivalent.
Pro-Fallback
Abschnitt betitelt „Pro-Fallback“Pro-Fallback — keiner; diese Fähigkeit hat kein Pro-Stufen-Äquivalent. Das gemeinsame BoundingBox-Primitiv wird ausschließlich im Paket nextpdf/enterprise ausgeliefert.
Hinweis zur Enterprise-Grenze
Abschnitt betitelt „Hinweis zur Enterprise-Grenze“Das validierte Geometrie-Primitiv wird auf Verhaltensebene beschrieben. Es ist eine Enterprise-exklusive Support-Oberfläche, die andere Enterprise-Module konsumieren; es gibt keine internen Sub-Mechanismen über den dokumentierten Vertrag hinaus.
Bereitstellungsgrenze
Abschnitt betitelt „Bereitstellungsgrenze“Bereitstellungsgrenze — keine anwendbar; dieses Modul führt keine Persistenz, keine Netzwerk-I/O aus und hält keinen Dokumenteninhalt und keine personenbezogenen Daten. Für diese Oberfläche gibt es keine vom Betreiber verantwortete Ressource.
Rechtliche Compliance-Grenze
Abschnitt betitelt „Rechtliche Compliance-Grenze“Für diese Oberfläche gilt keine exportkontrollrechtliche Beschränkung. Das Modul implementiert keinen normativen Standard und erhebt keinen Konformitäts-, Zertifizierungs- oder regulatorischen Anspruch. Diese Dokumentation ist kein Rechtsgutachten.
Siehe auch
Abschnitt betitelt „Siehe auch“- Validation — konsumiert gemeinsame Primitive.
- Evidence — konsumiert gemeinsame Primitive.
- Common — Deep Reference — Deep Reference für die gemeinsamen Primitive.