Lundi, le contributeur principal de WordPress Jonathan Desrosiers a publié un article détaillé sur le blog Make WordPress Core à propos de la prochaine version de PHP 8 et de son impact sur WordPress.

PHP 8 arrive

Sortie prévue le 26 novembre 2020, PHP 8 est la prochaine mise à jour majeure de notre langage de script préféré. Alors que les versions précédentes de PHP n’ont pas eu trop d’effet négatif sur l’écosystème WordPress, cette mise à jour comporte des changements révolutionnaires qui pourraient affecter la compatibilité descendante. Il faut également noter que de nombreuses fonctionnalités qui étaient obsolètes dans PHP 7.x seront désormais supprimées dans PHP 8.

Le statut de WordPress Core

Dans son article, Desrosiers souligne le travail qui a été fait pour maintenir le logiciel de base à jour. «WordPress Core vise à être compatible avec PHP 8.0 dans la version 5.6 (actuellement prévue pour le 8 décembre 2020)», écrit-il.

Cependant, cela ne signifie pas qu’il est sûr de passer à PHP 8 lorsque WordPress 5.6 est publié. WordPress est rarement exécuté seul et repose généralement sur au moins un thème et une collection de plugins pour fonctionner comme un blog ou un site Web. À ce titre, souligne-t-il, «l’état du support de 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 “ compatible bêta ” avec PHP 8.

Ce que cela signifie, essentiellement, c’est que tant que la plupart des principaux thèmes et plugins ne sont pas compatibles avec PHP 8, WordPress ne peut pas être considéré comme entièrement compatible.

Comprendre comment PHP 8 pourrait affecter votre plugin ou votre thème

Des entreprises comme Yoast s’y préparent depuis un certain temps déjà. Fin octobre, Yoast CTO Omar Reiss, avec ses collègues contributeurs Juliette Reinders Folmer, responsable de la Reniflements de normes de codage WordPress pour PHPCS, et le manager de Yoast DevOps, Herre Groen, ont compilé et publié un rapport complet de compatibilité WordPress / PHP 8.

Bien que je vous recommande vivement de prendre le temps de lire l’intégralité du rapport, il décrit la principale raison pour laquelle la mise à niveau de PHP 8 pourrait avoir un effet si radical sur les grands sites WordPress, en particulier l’écosystème des plugins et des thèmes.

«Cependant, les versions de PHP 7. * ont connu un ensemble de dépréciations beaucoup plus important que les versions précédentes de PHP. Là où PHP 5.6 vers PHP 7 était une migration relativement simple, passer de 7.x à 8 pourrait être très pénible, en particulier pour les bases de code très anciennes, comme WordPress et la plupart des plugins disponibles. Pour les bases de code bien typées ou les bases de code qui sont restées à jour avec les dernières versions de PHP, il n’y a pas de gros problème. »

En tant que mainteneur de quelques plugins, dont certains reposent sur un code datant de huit ans, il est inquiétant que cette mise à niveau puisse provoquer la rupture des sites.

Dépôt PHPCompatibility sur GitHub.
Référentiel PHPCompatibility.

Comment se préparer

J’ai demandé à Reiss et Folmer ce que les développeurs de plugins et de thèmes peuvent faire pour se préparer, et ils ont partagé quelques conseils.

Tout d’abord, les développeurs doivent s’informer des changements à venir dans PHP 8: lire le post Make sur PHP 8, lis le Compatibilité Yoast PHP8 rapport, lisez le “Migrer de PHP 7.4 vers PHP 8.0»Du manuel PHP, et approfondissez éventuellement la lecture du MISE À JOUR doc dans la branche PHP 8 et le RFC pour PHP 8.

Certains outils disponibles peuvent être utilisés pour aider à rechercher des incompatibilités:

  • Exécutez PHP lint sur PHP 8 sur leur code, soit via le php -l commande (en veillant à parcourir tous les fichiers) ou en utilisant PHP Parallel Lint.
  • Courir PHPCompatibilité sur leur code: il convient de noter que presque tous les sniffs liés à PHP 8 sont dans la version 10.0.0 de PHPCompatibility, qui n’est pas encore publiée, de sorte que les utilisateurs devraient utiliser le develop succursale ou via Composer dev-develop pour le moment, jusqu’à la sortie de la version 10.0.0. Il est également important de noter qu’une couverture de test considérable est nécessaire pour rendre cela fiable.
  • Exécutez les tests unitaires / d’intégration pour le plugin ou le thème sur PHP 8 et corrigez tout ce qui apparaît comme une erreur. Cela signifie souvent que la suite de tests doit d’abord être rendue compatible avec PHPUnit 9.3+. le Polyfills PHPUnit paquet et Outils de test WP package (tous deux publiés sous l’organisation Yoast GitHub) peuvent vous aider.
  • Exécutez WordPress tests unitaires et WordPress tests e2e avec votre plugin activé, et corrigez les problèmes qui surviennent.
  • Vérifiez si la couverture de code (stricte) desdits tests est suffisamment élevée et si ce n’est pas le cas, ajoutez d’autres tests, en vous assurant que les chemins heureux et malheureux sont couverts.
  • S’il n’y a pas de tests, testez tout manuellement, en vous concentrant particulièrement sur les «chemins malheureux», et attendez-vous à recevoir des rapports de bogues dans un avenir prévisible. Dans le même temps, c’est probablement le bon moment pour se pencher sur la mise en œuvre de tests unitaires / d’intégration pour votre plugin ou votre thème.

Il y a encore du temps, mais il s’épuise

Comme Desrosiers l’a souligné dans l’article Make, WordPress vise seulement officiellement à être prêt pour PHP 8 avant la sortie de la version 5.6 début décembre. Potentiellement, cela signifie que de nombreuses sociétés d’hébergement axées sur WordPress n’envisageront de proposer des mises à niveau à leurs clients qu’une fois le noyau WordPress compatible. Donc, en tant que développeurs de plugins et de thèmes, nous avons du temps pour tester nos produits et les préparer, mais cette fenêtre se ferme rapidement.

Heureusement pour nous, les connaissances et les outils pour se mettre à jour sont là. Nous devons simplement les mettre en action.


Source link