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.

Rendre obsolète une fonction

deprecated.png

Lorsqu'on ajoute des fonctionnalités à une application, on peut être amené à vouloir supprimer une fonction. Une bonne pratique est de d'abord rendre obsolète cette fonction avant de la supprimer. Cela est censé laisser le temps aux développeurs d'adapter le code qui utilise cette fonction. Par  […]

Lire la suite

Comment moderniser une vieille application PHP ?

J'ai contribué pendant de nombreuses années à PhpWebGallery Piwigo. J'y ai pris beaucoup de plaisir et j'ai rencontré des gens formidables. J'ai même contribué à faire entrer l'application dans debian en tant que package. Pour diverses raisons, j'ai fini par ne plus contribuer à Piwigo. Mais j'avais toujours besoin d'une galerie photos et plutôt que de repartir de zéro, j'avais décidé de faire un fork de Piwigo. Ainsi est né Phyxo qui depuis continue d'évoluer petit à petit. 

Lire la suite

Phyxo en version 1.8.0

Je viens de publier la version 1.8.0 de Phxyo. Cette version ajoute un thème responsive (basé sur bootstrap) dans la partie administration. Comme d'habitude, vous devriez voir apparaître la nouvelle version depuis votre interface d'administration et pouvoir ainsi mettre à jour en quelques clics. Si  […]

Lire la suite

Mise à jour du thème

Je ne suis décidément pas doué pour faire des thèmes. Je me suis basé sur le thème par défaut (berlin) et j'ai adapté les couleurs. Ce n'est pas formidable mais l'affichage devrait être un peu mieux que le précédent thème et un peu plus "responsive".

Mise à jour de PostgreSQL

J'ai un peu tardé mais j'ai finalement mis à jour ma base de données PostgreSQL vers la version 10 sortie au mois d'octobre 2017. Il y a plein de changements intéressants, surtout au niveau des performances mais un changement qui aura son importance : PostgreSQL est passé comme de nombreux projets à  […]

Lire la suite

Phyxo 1.7.0

Je viens de publier une nouvelle version de Phyxo, la 1.7.0. Au menu : - utilisation de l'héritage des templates plutôt que des simples inclusions. - utilisation de SwiftMailer en lieu et place de phpmailer. Comme d'habitude, vous devriez voir apparaître la nouvelle version depuis votre interface  […]

Lire la suite

Préparation de migration de Piwigo à Phyxo

J'ai une galerie personnelle (non publique) de photos qui utilise piwigo depuis le début. Elle a plusieurs années et même si j'essaie de développer Phyxo et que j'en fait un site de démonstration, je ne l'utilise pas réellement avec de vrais utilisateurs. Pour suivre l'expression anglaise Eating your own dog food je me résoud finalement à migrer de piwigo à phyxo. 

Lire la suite