Annoncée depuis plusieurs mois et très attendue par la communauté d’utilisateurs, la version 7 de PMB tend à se faire désirer. Par souci de transparence, PMB Services explique pourquoi PMB 7 n’est pas encore disponible.

Pourquoi PMB 7 se fait tant attendre
Plus de quinze ans d'évolution
Ceux qui utilisent PMB depuis ses débuts savent ô combien le logiciel a subi de nombreuses évolutions ! Grâce aux mises à jour et aux nouvelles versions majoritairement développées par PMB Services, la communauté PMB profite depuis plus de quinze ans d’un logiciel pérenne qui ne cesse d’être amélioré en termes de performance et de fonctionnalités.
PHP, le langage de programmation libre dans lequel PMB est codé, évolue également au fur et à mesure des années. À ses débuts, le code de PMB respectait ainsi les normes de PHP 4. Progressivement, les pratiques de code se sont modifiées et de nouvelles versions de PHP ont vu le jour. Les innovations de PMB ont nécessairement suivi ces évolutions ; dans PMB 5 cohabite donc du code PHP 4, PHP 5 et PHP 5.6.
Une nouvelle version de PHP
Si PHP 5.6 a longtemps été la version de référence du langage, elle n’est plus maintenue depuis janvier 2019, contraignant ainsi les éditeurs de logiciel à respecter les nouvelles normes de PHP 7 (notons que PHP 6 n’existe pas). Cette version de PHP contient entre autres une refonte complète du moteur qui interprète le langage de programmation. Grâce à cette refonte, PHP 7 est bien plus rapide mais le code rédigé dans des versions antérieures de PHP n’est plus totalement compatible. Par conséquent, cela crée certains dysfonctionnements dans PMB puisque son code est basé sur du PHP 5.6.
Des pages entières de code à modifier
Depuis plusieurs mois, l’équipe « Développement » de PMB Services s’applique à rendre le code de PMB conforme au nouveau langage PHP. Autrement dit, elle traduit des pages et des pages de code PHP 5.6 en PHP 7 pour rendre toutes les fonctionnalités de PMB opérationnelles.
Durant l’été 2018, l’équipe de développeurs expérimentés de PMB Services a résolu 80 % des incompatibilités après avoir effectué un gros travail de réécriture du code, de normalisation des classes de PMB, de correction des erreurs fatales… L’équipe a également profité de cette importante phase de correction pour optimiser les performances de PMB en améliorant par exemple la requête pour des pages de recherche ou en introduisant un cache.
Pour les 20 % restantes, PMB Services a décidé de faire appel à la société Exakat et à son logiciel éponyme pour analyser le code de PMB. Après une relecture systématique du code de PMB, le logiciel Exakat a publié un premier rapport relevant plus de 120 000 incompatibilités entre PMB et PHP 7 ! Depuis janvier 2019 et à la demande de PMB Services, la société Exakat développe des modules d’extension spécifiques à PMB pour corriger de façon systématique la grande majorité de ces incompatibilités liées à des pratiques obsolètes.
Et maintenant ?
Aujourd’hui, PMB est presque compatible avec PHP 7.0. et 7.1. Toutefois, avant de sortir PMB 7, PMB Services doit encore adapter manuellement des librairies* utilisées dans PMB qui ne sont plus maintenues ou pas encore mises à jour par leurs développeurs initiaux. Actuellement, deux librairies ne sont toujours pas compatibles avec PHP 7 : celle permettant la gestion des fichiers Microsoft Excel dans les Editions et celle permettant la création d’un serveur webdav.
Par souci stratégique, PMB Services a décidé de revoir en priorité le code de la librairie gérant les fichiers Microsoft Excel car elle est largement utilisée par la communauté PMB. Dès que cette librairie aura été corrigée de façon à être compatible avec PHP 7.1, la première version stable de PMB 7 pourra alors être livrée. Peu utilisée, la librairie sabre/dev sera quant à elle adaptée ultérieurement par les développeurs de PMB Services et sera intégrée dans une mise à jour de PMB 7.
Parallèlement, l’équipe « Développement » de PMB Services normalise l’intégralité du code de PMB afin de respecter les normes d’écriture PSR (PHP Standard Recommendation) en PHP. Ces dernières visent à favoriser la lecture et la compréhension du code. En homogénéisant le code de PMB, PMB Services améliore ses pratiques et facilite la diffusion de la connaissance du logiciel. C’est également pour cela que PMB Services applique désormais une politique de mise à jour systématique des librairies utilisées dans PMB.
*Une librairie est un programme permettant d'effectuer un certain nombre d'opérations. Autrement dit, une boîte à outils qui peut être implémentée dans un programme (ce qui évite un certain nombre d’opérations en programmation).
Encore un tout petit peu de patience
Certes, PMB 7 se fait attendre… mais « uniquement » parce que l’équipe PMB Services est soucieuse de garantir aux utilisateurs de PMB un logiciel stable, hautement sécurisé et entièrement fonctionnel, dans un contexte de refonte quasi totale du code !
PMB Services fait son maximum pour dévoiler une version de PMB 7 compatible avec PHP 5.6, 7.0 et 7.1 durant l’été 2019.D'ici là, celles et ceux qui le souhaitent peuvent tester PMB 7 en téléchargeant la version "nightly build" depuis la Forge : attention, cette version est une version de test uniquement et ne doit pas être passée en production !