Enterprise édition
Common
NextPDF Enterprise livre un petit ensemble de primitives partagées réutilisées dans tous les modules Enterprise. La première est une boîte englobante normalisée pour un positionnement spatial indépendant de la résolution. Ce sont des objets-valeurs sans aucun comportement de conformité, d’attestation de conformité ni cryptographique.
Disponibilité et licence
Section intitulée « Disponibilité et licence »Cette capacité est livrée dans NextPDF Enterprise (nextpdf/enterprise) et s’active avec une enveloppe de licence de palier Enterprise. Un déploiement sans ce droit ne charge pas les classes de la capacité. Compare les éditions et obtiens une licence.
Le paquet Enterprise s’installe à côté du paquet Core ; ces primitives partagées sont consommées en interne par les autres modules Enterprise et se résolvent avec le paquet. Elles n’ont aucun équivalent au palier Core ni au palier Pro.
Installation
Section intitulée « Installation »composer require nextpdf/enterprise:^3Vue d’ensemble conceptuelle
Section intitulée « Vue d’ensemble conceptuelle »BoundingBox est un objet-valeur immuable dont les quatre coordonnées — x, y, largeur, hauteur — sont normalisées dans la plage [0.0, 1.0] relativement aux dimensions de la page. Parce que les coordonnées sont normalisées, la boîte est indépendante de la résolution et peut être réutilisée dans les modules Enterprise qui raisonnent sur la géométrie de la page. Le constructeur valide que chaque coordonnée est dans la plage et que x + width et y + height ne dépassent pas 1.0 (à une petite tolérance en virgule flottante près), levant une erreur d’argument sinon.
Il expose area(), contains(self $other) et overlaps(self $other). Les boîtes d’aire nulle (points ou lignes dégénérés) ne peuvent par définition pas se chevaucher.
Ce que ce module affirme
Section intitulée « Ce que ce module affirme »Ce module fournit des primitives de géométrie validées. Il ne formule aucune revendication de conformité ni d’attestation de conformité et n’effectue aucune E/S.
Frontière entre paliers
Section intitulée « Frontière entre paliers »Common est une surface de support réservée à Enterprise que les autres modules Enterprise consomment. Il ne duplique ni ne remplace la géométrie du Core ; il fournit les petites primitives validées que les modules Enterprise partagent.
Pourquoi cela fonctionne ainsi
Section intitulée « Pourquoi cela fonctionne ainsi »La décision porteuse est de normaliser chaque coordonnée dans la plage [0.0, 1.0] et de la valider dans le constructeur. Les coordonnées normalisées rendent la boîte indépendante de la résolution, si bien qu’une région décrite une fois reste correcte à n’importe quelle taille de page ou échelle de rendu. La construction fail-closed signifie qu’une boîte invalide ou en dépassement ne peut pas exister : le constructeur la rejette plutôt que de la borner ou de deviner. Les modules Enterprise consommateurs ne revérifient donc jamais la géométrie qu’ils reçoivent, car une boîte construite est déjà connue comme valide. L’immuabilité permet de partager une boîte en toute sécurité entre modules sans copies défensives.
Contexte de conception : Une API qui refuse de deviner.
Surface d’API
Section intitulée « Surface d’API »| Classe | Responsabilité |
|---|---|
BoundingBox | Boîte normalisée immuable ; area(), contains(), overlaps(). |
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »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));Exemple de code — Production
Section intitulée « Exemple de code — 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()]);}Cas limites et pièges
Section intitulée « Cas limites et pièges »- Construire avec une coordonnée hors de
[0.0, 1.0], ou avecx + width/y + heightau-delà de 1.0, lève une erreur d’argument — valide les entrées en amont. - Les boîtes d’aire nulle ne se chevauchent jamais ; tiens-en compte lors du calcul des intersections.
- Les coordonnées sont normalisées, pas en pixels ; convertis à la frontière du rendu.
Performance
Section intitulée « Performance »Toutes les opérations sont de l’arithmétique à temps constant sur quatre flottants.
Notes de sécurité
Section intitulée « Notes de sécurité »BoundingBox n’effectue aucune E/S et ne détient aucun contenu de document. Le constructeur rejette une géométrie hors plage, empêchant les valeurs dégénérées de se propager vers les modules consommateurs.
Résidence des données et mesures d’atténuation des PII
Section intitulée « Résidence des données et mesures d’atténuation des PII »Ce module ne détient aucune donnée personnelle et n’effectue aucune persistance ni E/S réseau. Les considérations de résidence ne s’appliquent pas.
Télémétrie sûre et nettoyage des journaux
Section intitulée « Télémétrie sûre et nettoyage des journaux »Les coordonnées et les aires des boîtes sont une géométrie non sensible et peuvent être journalisées en toute sécurité.
Conformité
Section intitulée « Conformité »Ce module n’implémente aucune norme normative et ne formule aucune revendication d’attestation de conformité. C’est une primitive de géométrie.
Comportement en mode FIPS
Section intitulée « Comportement en mode FIPS »Ce module n’effectue aucune opération cryptographique ; le mode FIPS ne s’applique pas.
Modèle de menace
Section intitulée « Modèle de menace »La seule entrée est quatre flottants. La validation de plage et de bornes du constructeur est la mesure d’atténuation : une géométrie invalide ne peut pas être construite.
Contrat de comportement
Section intitulée « Contrat de comportement »BoundingBoxest un objet-valeur immuable dont les quatre coordonnées sont normalisées dans la plage[0.0, 1.0]relativement aux dimensions de la page, ce qui le rend indépendant de la résolution.- Le constructeur valide que chaque coordonnée est dans la plage et que
x + widthety + heightne dépassent pas 1.0 (à une petite tolérance en virgule flottante près), levant une erreur d’argument sinon. - Il expose
area(),contains()etoverlaps(); les boîtes d’aire nulle ne se chevauchent jamais par définition. - Le module n’effectue aucune E/S, ne détient aucun contenu de document et ne formule aucune revendication de conformité ni d’attestation de conformité.
Frontière de publication
Section intitulée « Frontière de publication »Cette page documente uniquement le comportement observable de l’extérieur et la surface d’API publique prise en charge. Les chemins d’espace de noms internes, les classes utilitaires, les tables de mécanismes, les noms de fichiers de runbook et les préfixes de ticket sont hors périmètre.
Repli sur le Core
Section intitulée « Repli sur le Core »Repli sur le Core — aucun ; c’est une primitive de support partagée réservée à Enterprise. Elle ne duplique ni ne remplace la géométrie du Core et n’a aucun équivalent au palier Core.
Repli sur Pro
Section intitulée « Repli sur Pro »Repli sur Pro — aucun ; cette capacité n’a aucun équivalent au palier Pro. La primitive partagée BoundingBox est livrée uniquement dans le paquet nextpdf/enterprise.
Note sur la frontière Enterprise
Section intitulée « Note sur la frontière Enterprise »La primitive de géométrie validée est décrite au niveau du comportement. C’est une surface de support réservée à Enterprise que les autres modules Enterprise consomment ; il n’y a aucun sous-mécanisme interne au-delà du contrat documenté.
Frontière de déploiement
Section intitulée « Frontière de déploiement »Frontière de déploiement — aucune applicable ; ce module n’effectue aucune persistance, aucune E/S réseau, et ne détient aucun contenu de document ni donnée personnelle. Il n’y a aucune ressource gérée par l’opérateur pour cette surface.
Frontière de conformité légale
Section intitulée « Frontière de conformité légale »Aucune restriction de contrôle des exportations ne s’applique à cette surface. Le module n’implémente aucune norme normative et ne formule aucune revendication d’attestation de conformité, de certification ni réglementaire. Cette documentation n’est pas un avis juridique.
Voir aussi
Section intitulée « Voir aussi »- Validation — consomme les primitives partagées.
- Evidence — consomme les primitives partagées.
- Common — Référence approfondie — référence approfondie des primitives partagées.