Eviter les fonctions globales

Dans la lourde tâche qui consiste à améliorer le code de Phyxo, la plus grosse tâche est d'éviter les fonctions globales. Utiliser des fonctions globales a plusieurs inconvénients :

  • oblige à les inclure (avec la fonction include) partout où on en a potentiellement besoin, même si on a passe dans une section de code qui n'utilise pas la fonction.
  • oblige à mettre quantité d'include en début des fichiers
  • complexifie voire rend impossible les tests unitaires

Pour pallier à ces problèmes, une première étape est de regrouper les fonctions globales dans des classes, où chaque fonction devient une méthode statique. Cela ne change finalement pas grand chose et ce n'est à mon sens toujours pas de la programmation objet mais de la programmation procédurale déguisée en objet. Mais cela corrige partiellement les problèmes rencontrés : code plus facile à tester, les fonctions ne sont incluses que lorsqu'elles sont nécessaires via l'autoload.

Une deuxième étape sera de supprimer l'usage de global qui rend le comportement des fonctions/méthodes non prédictible et surtout non reproductible.

Haut de page