WordPress 5.6 et sa compatibilité avec PHP 8

WordPress a offert des explications sur la compatibilité du nouveau WordPress 5.6 avec PHP 8 et ce que cela signifie pour les éditeurs.

WordPress 5.6 et sa compatibilité avec PHP 8

WordPress est mis à jour prochainement vers la version 5.6 qui vise à être compatible avec PHP 8.

Toutefois, WordPress a averti qu’il devrait être considéré comme « bêta-compatible » et a expliqué pourquoi la mise à niveau vers PHP 8 devrait être fait à ce moment être avec beaucoup de précaution.


Contexte de PHP


PHP est un langage de programmation qui est exécuté sur un serveur pour générer une page Web. WordPress lui-même est créé avec le langage PHP.

La version actuelle de PHP est PHP 7x.

Le « x » est une référence aux différentes versions de PHP 7, qui représentent actuellement 7,2, 7,3 et 7,4.

Les versions antérieures à 7.2 ont atteint leur « fin de vie » (EOL ou End Of Life) et ne sont plus mises à jour avec des correctifs de sécurité.

La version la plus ancienne, 7.2, devrait arriver en fin de vie le 30 Novembre 2020. Cela signifie qu’elle ne recevra plus de mises à jour de sécurité et à cause de cela, elle deviendra une responsabilité de sécurité potentielle pour n’importe quel site qui l’utilise encore, si une vulnérabilité est découverte à l’avenir.

La version 7.3 devrait arriver en fin de vie le 6 décembre 2021.



Les éditeurs ont jusqu’en 2022 pour mettre à jour vers PHP 8 ?


La version actuelle et la plus à jour de PHP 7.x est la version 7.4. PHP 7.4 atteint sa fin de vie le 8 Novembre 2022.

Cela signifie que techniquement, les éditeurs WordPress ont 2 ans pour décider quand mettre à jour leur version PHP à PHP 8.

Dans la pratique cependant, la plupart des éditeurs WordPress devraient être en mesure de mettre à jour vers PHP 8 bien avant cette date.


Pourquoi WordPress 5.6 est compatible bêta ?


WordPress a annoncé que la dernière version WordPress prévue pour Décembre 2020 devrait être compatible avec PHP 8.

Toutefois, WordPress a averti qu’il est encore possible que des incompatibilités non découvertes puissent encore exister.

C’est une reconnaissance de la réalité que si l’installation du Core WordPress peut être compatible avec PHP 8, il existe toujours la possibilité que quelque chose a été négligé.

C’est ainsi que le guide de WordPress 5.6 avec PHP 8 l’a formulé :

WordPress Core vise à être compatible avec PHP 8.0 dans la version 5.6 (actuellement prévue pour le 8 Décembre 2020).

... Des efforts importants ont été déployés pour rendre WordPress 5.6 compatible avec PHP 8 tout seul, mais il est très probable qu’il reste encore des problèmes inconnus.


Le fait qu’il reste des « problèmes non découverts » n’est pas une déclaration négative au sujet de la version WordPress 5.6. C’est une reconnaissance pragmatique que dans la programmation, comme dans de nombreuses activités d’ingénierie, il y a presque toujours la possibilité qu’il y ait des erreurs ou des oublis imprévus.

Peut-être une considération plus importante est l’incertitude de quand les thèmes et les plugins deviendront compatibles PHP 8. Cela plus que toute autre chose pourrait contribuer à empêcher WordPress d’être considéré comme entièrement compatible PHP 8.

Les explications officielles de WordPress 5.6 ont conseillé :

Il convient également de reconnaître que WordPress n’est jamais utilisé isolément (sans aucun thème ou plugins), de sorte que WordPress lui-même étant en mesure d’exécuter sur PHP 8 n’indique pas compatibilité « complète ».

L’état du support PHP 8 au sein de l’écosystème plus large (plugins, thèmes, etc.) est impossible à connaître. Pour cette raison, WordPress 5.6 devrait être considéré comme « bêta compatible » avec PHP 8.



WordPress 5.6 est « Beta Compatible » avec PHP 8


Dans le développement de logiciels, il existe généralement deux versions finales ou stables de release.

Il y a une version Alpha, puis une version bêta. La version bêta est généralement considérée comme peut-être presque prête pour la sortie. La version bêta du logiciel est ce qui vient avant la version finale d’un logiciel.

Ainsi, lorsque WordPress dit que la version 5.6 doit être considérée comme « bêta-compatible », cela signifie qu’il peut y avoir des bugs et des erreurs qui n’ont pas encore été découverts.

Étant donné que les thèmes et les plugins ne sont peut-être pas encore compatibles avec PHP 8, il est probablement prudent de ne pas mettre à jour tant que tous les plugins et thèmes n’ont pas été vérifiés pour être compatibles PHP 8.

Mais même après que les thèmes et les plugins sont compatibles PHP 8, il peut encore être sage d’attendre au moins quelques mois de plus pour mettre à niveau.

La raison en est que PHP 8 est une mise à jour majeure.


Bien que les thèmes et les plugins puissent être considérés comme compatibles PHP 8, il est presque inévitable que des bugs et d’autres problèmes soient découverts dans les thèmes compatibles PHP 8 et les plugins installés sur un site.


Est-ce que la mise à jour vers PHP 8 va casser WordPress Sites ?


Il existe de nombreuses anciennes fonctions de PHP 7.x qui sont supprimées de PHP 8, ce qui signifie que les thèmes et les plugins qui les utilisent encore se casseront (fonctionneront mal) dans PHP 8.

Wordfence a récemment estimé que pour une seule des fonctions il y a actuellement plus de 5.500 plugins installés dans des millions de sites.

Bien que l’utilisation de ces fonctions dans certains cas sont pour la compatibilité vers l’arrière, ce n’est pas le cas sur tous. Wordfence met cependant en garde

... Nous avons identifié que create_function est encore utilisé dans plus de 5500 plugins WordPress, y compris les plugins extrêmement populaires avec des millions d’installations.

Dans certains cas, l’utilisation de ces fonctions dépréciées peut être destinée à la compatibilité vers l’arrière avec les anciennes versions de PHP.

Beaucoup de plugins, cependant, auront besoin d’une refactorisation étendue pendant que PHP 8 devient plus utilisé.


Yoast a récemment publié une étude sur la préparation PHP 8 des plugins et des thèmes au sein de l’écosystème WordPress.


Des changements synonymes de rupture dans PHP 8


Dans la section de leur rapport portant sur les tests de plugins et de thèmes, Yoast a révélé : 

Seul un faible pourcentage des plugins disponibles, les plus populaires et les plus développés professionnellement, ont mis en place des tests automatisés. C’est inquiétant car d’une manière générale, le site WordPress moyen fonctionne sur environ 19 ou 20 plugins.

... Cependant, plus que tout, les plugins / thèmes qui ont des tests sont probablement ceux où le moins de problèmes PHP 8.0 peuvent être attendus car ils utilisent un modèle de développement professionnel.

La multitude de plugins et de thèmes sans tests sont beaucoup plus préoccupants car ceux-ci seront plus susceptibles d’être problématiques lorsqu’ils seront exécutés sur PHP 8.


Le rapport de Yoast conclut :

PHP 8 va contenir beaucoup de changements synonymes de rupture.


« Breaking changes » ou Changements synonymes de rupture est une référence aux modifications qui entraînent une erreur lorsqu’un thème ou un plugin utilise du code qui n’est plus pris en charge dans PHP 8.


PHP 8 et WordPress


PHP 8 représente une avancée importante pour le monde de l’édition, en particulier pour les utilisateurs de WordPress. L’un des avantages est que ce sera plus de sécurité.

Les conseils de WordPress concernant la mise à jour de PHP 8 sont de recommander la prudence :

... il est fortement recommandé de tester soigneusement votre site avant de passer à PHP 8.


Le fait que WordPress lui-même appelle WordPress 5.6 « bêta-compatible » avec PHP 8 vous indique tout ce que vous devez savoir si vous devez mettre à jour ou pas vers PHP 8.

Source : Searchenginejournal