Skip to content

Stability & XML namespace fixes

Choose a tag to compare

@zangra-dev zangra-dev released this 12 Sep 09:32
· 3 commits to master since this release

📦 bpost-api-library 5.1.0

🚀 Highlights

  • ✅ PUDO / Parcel Locker

    • Correction stricte des namespaces et de l’emboîtement.
    • nationalBox → pugoAddress / parcelsDepotAddress désormais sérialisés correctement en national.
    • Les champs adresse (streetName, number, postalCode …) restent bien en common.
    • Clonage des nœuds common: sous le conteneur national: validé côté XSD.
  • ✅ AtBpost / At247

    • Ordre des éléments XML corrigé pour respecter les schémas Bpost.
    • unregistered suit 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.
  • ✅ Compatibilité PHP 8.4 & Symfony 6.x

    • Types stricts généralisés.
    • Gestion null sécurisée pour setters et getters.
    • Corrections des signatures toXML() (suppression des faux Bpost\...\DOMDocument).
    • Injection PSR-3 Logger : par défaut un NullLogger peut ê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.

🛠 Changelog technique

  • Refactorisation de Customer / Receiver avec sérialisation XML claire (common: vs receiver).
  • Correctifs dans AtBpost::toXML() et At247::toXML() pour aligner l’ordre des éléments.
  • Ajout d’une entité ParcelLockerReducedMobilityZone.
  • Gestion optionnelle des champs box, company, shopHandlingInstruction sans plantage null.
  • Uniformisation des signatures toXML() pour toutes les classes Address.
  • 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, FormHandler et assimilés utilisent désormais des types stricts.
  • Injection de LoggerInterface obligatoire (utiliser NullLogger si non pertinent).
  • Les appels aux setters doivent respecter les types ?string/?int/array sous peine de TypeError.
  • 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.