Skip to content

🚀 bpost-api-library 5.0.0

Choose a tag to compare

@zangra-dev zangra-dev released this 11 Sep 11:17
· 4 commits to master since this release
3968e89

Cette version marque une étape majeure dans l’évolution de la librairie, avec une refonte complète pour assurer la compatibilité avec les environnements modernes (PHP 8.4, Symfony 6.x) et une meilleure conformité avec les spécifications Bpost (SHM & Geo6).

✨ Nouveautés

Compatibilité PHP 8.1 → 8.4 (types stricts, signatures à jour, propriétés typées).

Compatibilité Symfony 6.4 et écosystème PSR-4 moderne.

Introduction d’une gestion plus robuste des logs via PSR-3 (LoggerInterface) avec fallback sur NullLogger.

Support étendu et corrigé des expéditions internationales (US, Maroc, Allemagne validés en test).

Refonte de la sérialisation XML avec meilleure gestion des espaces de noms (common, national) pour se conformer strictement aux schémas XSD Bpost.

🔧 Améliorations techniques

Migration complète vers propriétés typées et return types explicites.

Harmonisation des exceptions (BpostException, BpostLogicException, XmlException, …) pour plus de clarté et de robustesse.

Meilleure gestion des valeurs invalides :

Validation stricte des poids et limites (InvalidWeightException).

Vérification des longueurs de champs (InvalidLengthException).

Vérification des patterns et valeurs autorisées (InvalidPatternException, InvalidValueException).

Refactorisation des classes principales :

  • Bpost
  • Bpack247
  • Geo6

FormHandler

Refonte des entités métiers (Order, Box, Receiver, Customer, Address, etc.) avec un XML généré propre et valide.

đź›  Corrections majeures

Correction du bug Pugo :

Génération XML conforme (national:pugoAddress).

Correction des namespaces imbriqués (streetName en common:).

Correction du bug Parcel Locker (At247) :

Produit typé correctement en ?string.

Options correctement initialisées.

Correction des erreurs cvc-complex-type.2.4.a lors de la validation des schémas XML.

Correction de l’intégration des labels et statuts pour les commandes.

đź§Ş Validation

Tests réussis sur :

Expédition nationale simple.

Expédition avec Pugo (point relais).

Expédition Parcel Locker (24/7).

Expéditions internationales (US, Maroc, Allemagne).

⚠️ Breaking changes

La librairie nécessite désormais PHP ≥ 8.1 (8.4 recommandé).

Certaines signatures de méthodes ont changé (ajout de : void, : ?string, : array, etc.).

Les constructeurs de certaines classes requièrent désormais des objets typés (LoggerInterface, Address, …).

Les exceptions sont plus strictes : certains cas qui passaient silencieusement lèvent désormais une exception dédiée.

👉 Cette version 5.0.0 est donc une release majeure

Modernisation complète du code.

Correction de bugs bloquants sur les flux réels Bpost.

Meilleure conformité aux standards et compatibilité avec les stacks modernes.