Repository navigation
Stability & XML namespace fixes
📦 bpost-api-library 5.1.0
🚀 Highlights
-
✅ PUDO / Parcel Locker
- Correction stricte des namespaces et de l’emboîtement.
nationalBox→pugoAddress/parcelsDepotAddressdésormais sérialisés correctement ennational.- Les champs adresse (
streetName,number,postalCode…) restent bien encommon. - Clonage des nœuds
common:sous le conteneurnational:validé côté XSD.
-
✅ AtBpost / At247
- Ordre des éléments XML corrigé pour respecter les schémas Bpost.
unregisteredsuit maintenant la séquence imposée :
language→mobilePhone→emailAddress→reducedMobilityZone.- Ajout du support explicite de
ParcelLockerReducedMobilityZone. - Typages renforcés :
product,options,weight.
-
✅ International
- Sérialisation XML corrigée : plus de mélange
common:/national:. - Les nœuds attendus en
international:respectent désormais le schéma. - Tests validés pour : Allemagne (EU), Maroc (hors-EU), États-Unis.
- Sérialisation XML corrigée : plus de mélange
-
✅ Compatibilité PHP 8.4 & Symfony 6.x
- Types stricts généralisés.
- Gestion
nullsécurisée pour setters et getters. - Corrections des signatures
toXML()(suppression des fauxBpost\...\DOMDocument). - Injection PSR-3 Logger : par défaut un
NullLoggerpeut être utilisé.
-
✅ Robustesse & DX
- Les erreurs XSD classiques corrigées :
“prefix not bound”,
“Invalid content was found starting with element …”,
“must be followed by either attribute specifications, '>' or '/>'”. - Tous les scénarios couverts : national, PUDO, locker, international.
- Tests complets validés sans crash.
- Les erreurs XSD classiques corrigées :
🛠 Changelog technique
- Refactorisation de
Customer/Receiveravec sérialisation XML claire (common:vsreceiver). - Correctifs dans
AtBpost::toXML()etAt247::toXML()pour aligner l’ordre des éléments. - Ajout d’une entité
ParcelLockerReducedMobilityZone. - Gestion optionnelle des champs
box,company,shopHandlingInstructionsans plantagenull. - Uniformisation des signatures
toXML()pour toutes les classesAddress. - Compatibilité Symfony 6.4 validée avec injection PSR-3 Logger.
- Suppression de l’utilisation implicite de
Logger()interne au profit d’un logger injecté.
✅ Tests de validation
-
🇧🇪 National
- Livraison à domicile
- Livraison en PUDO
- Livraison en Parcel Locker
-
🌍 International
- Livraison EU
- Livraison hors-EU
Tous les scénarios validés sans erreur XSD ni crash.
⚠️ Notes de migration
- Les constructeurs
Bpost,FormHandleret assimilés utilisent désormais des types stricts. - Injection de
LoggerInterfaceobligatoire (utiliserNullLoggersi non pertinent). - Les appels aux setters doivent respecter les types
?string/?int/arraysous peine deTypeError. - Vérifiez vos surcharges éventuelles de
toXML()pour qu’elles respectent les nouvelles signatures.
📌 Version
5.1.0 – Release stable confirmée.
Succède à la 5.0.0 qui introduisait le support initial des Parcel Lockers mais restait instable côté XSD.