Lundi, le rédacteur en chef 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 grande mise à jour de notre langage de script préféré. Alors que les versions précédentes de PHP n’affectaient pas trop l’écosystème WordPress, cette mise à jour comporte quelques changements importants qui peuvent affecter la compatibilité descendante. Il convient également de noter que de nombreuses fonctionnalités qui étaient obsolètes dans PHP 7.x sont 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. «La version 5.6 de WordPress Core (actuellement prévue pour le 8 décembre 2020) devrait être compatible avec PHP 8.0», écrit-il.

Cependant, cela ne signifie pas que la mise à niveau vers PHP 8 est sûre lorsque WordPress 5.6 est publié. WordPress fonctionne rarement seul et est généralement basé sur au moins un thème et une collection de plugins pour fonctionner comme un blog ou un site Web. Par conséquent, il souligne: «Le niveau de support de PHP 8 au sein de l’écosystème plus large (plugins, thèmes, etc.) est inconnu. Pour cette raison, WordPress 5.6 doit être considéré comme «compatible bêta» avec PHP 8.« 

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

Comprenez comment PHP 8 peut affecter votre plugin ou votre thème

Des entreprises comme Yoast s’y préparent depuis un certain temps. Fin octobre, Yoast CTO Omar Reiss et Juliette Reinders Folmer, le superviseur du Reniflements de normes de codage WordPress pour PHPCSet Herre Groen, Yoast DevOps Manager, ont compilé et publié un Rapport de compatibilité complet pour WordPress / PHP 8.

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

«Dans les versions PHP 7. *, cependant, beaucoup plus de dévaluations ont été faites que dans les versions antérieures de PHP. Alors que PHP 5.6 vers PHP 7 était une migration relativement facile, passer de 7.x à 8 peut être très pénible, en particulier avec des bases de code très anciennes comme WordPress et de nombreux plugins disponibles. Pour les bases de code bien typées ou les bases de code à jour avec les dernières versions de PHP, il n’y a pas beaucoup de problème. « 

En tant que mainteneur de certains plugins, dont certains sont basés sur huit ans de code, il est préoccupant que cette mise à niveau puisse corrompre les sites Web.

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

Comment vous préparez-vous

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 lire les modifications apportées à PHP 8: Lire le post Make sur PHP 8, Lis ça Compatibilité Yoast PHP8 Signaler, lisez le « Migration de PHP 7.4 vers PHP 8.0”Section du manuel PHP et peut-être aller plus loin en lisant ceci MISE À JOUR du document dans la branche PHP 8 et le RFC pour PHP 8.

Quelques outils disponibles peuvent être utilisés pour vérifier les incompatibilités:

  • Exécutez PHP Lint sur PHP 8 à partir de votre code, soit à partir du php -l Command (assurez-vous que tous les fichiers sont itérés) ou en utilisant Charpie parallèle PHP.
  • Courir Compatibilité PHPC À propos de leur code: il convient de noter que presque tous les sniffs liés à PHP 8 sont dans la version 10.0.0 encore inédite de PHPCompatibility, les utilisateurs devraient donc l’utiliser develop Succursale ou via Composer dev-develop pour le moment jusqu’à la sortie de la version 10.0.0.
  • Exécutez les tests unitaires / d’intégration pour le plugin ou le thème sous PHP 8 et corrigez les erreurs. 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 Le package (tous deux publiés sous l’organisation Yoast GitHub) peut vous aider. Il est également important de noter qu’une couverture de test considérable est nécessaire pour le faire de manière fiable.
  • Exécutez le WordPress Tests unitaires et WordPress tests e2e avec le plugin activé et résolvez tous les problèmes qui surviennent.
  • Vérifiez que la couverture de code (stricte) de ces tests est suffisamment élevée, sinon ajoutez d’autres tests pour vous assurer que les chemins heureux et malheureux sont couverts.
  • S’il n’y a pas de tests, testez tout manuellement, en vous concentrant spécifiquement sur les «chemins malheureux», et attendez-vous à voir des rapports de bogues dans un avenir prévisible. En 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 ne s’efforcera pas officiellement d’être compatible avec PHP 8 avant la sortie de la version 5.6 début décembre. Cela peut signifier que de nombreuses sociétés d’hébergement axées sur WordPress n’envisageront pas d’offrir des mises à niveau à leurs clients tant que le cœur de WordPress ne sera pas compatible. Donc, en tant que développeurs de plugins et de thèmes, nous avons un peu de temps pour tester nos produits et les préparer, mais cette fenêtre se ferme rapidement.

Heureusement, les connaissances et les outils pour se tenir à jour sont là. Nous devons simplement le mettre en pratique.



Source link

Recent Posts