CodeSOD : Payez plus tard Note

CodeSOD : Payez plus tard

Ross a été chargé d'écrire un logiciel pour intégrer un système de paiement par carte de crédit qui utilisait XML pour l'échange de données. La passerelle de paiement était relativement petite et n'avait pas de document de schéma publié, mais fournissait un exemple de code pour analyser leurs messages XML. L'exemple de code utilisait une fonction appelée fetch_data pour extraire des données de la réponse XML. Cependant, la fonction fetch_data était mal implémentée, utilisant plusieurs sous-chaînes pour analyser le document XML sans tenir compte de sa structure. Cette approche la rendait fragile et incapable de gérer les balises imbriquées, les attributs ou les balises auto-fermantes. La fonction permettait également d'extraire des fragments de document arbitraires et non valides. Une meilleure approche serait d'utiliser les classes de parsing XML intégrées de PHP, qui offriraient une solution plus robuste et plus maintenable. La mise en œuvre actuelle ne présente peut-être même aucun avantage en termes de performances en raison des recherches linéaires multiples dans le document. L'utilisation d'une approche de parsing fragile et limitée peut entraîner des problèmes de maintenance et des difficultés pour gérer des documents XML valides. La mise en œuvre est un exemple de solution mal conçue qui peut causer des problèmes à long terme. L'auteur du code semble avoir adopté une approche simpliste pour analyser le XML, qui n'est pas adaptée pour gérer des documents XML complexes.