La première version de PHP 8 est sortie le 26 novembre 2020. C’est une version majeure qui petit à petit va venir remplacer les versions 7.X qui sont actuellement largement utilisées. L’équipe de développement du cœur de WordPress a annoncé que WordPress serait compatible avec PHP 8 dès la sortie de la version 5.6 au mois de décembre 2020. Dans cet article, nous allons vous expliquer pourquoi il est préférable d’attendre avant de migrer vers PHP 8. Cet article appartient à notre série d’articles autour de WordPress.
Les bénéfices de migrer vers PHP 8
La fonctionnalité la plus importante et la plus attendue de PHP 8 est le JIT (compilation « Just in Time »). Il s’agit d’une amélioration dans la gestion de l’exécution du code PHP. Cette évolution doit permettre un gain en performance, de l’ordre de 10 à 20% en fonction d’un certain nombre de paramètres. Dans la réalité, il faut bien voir que la performance d’un site WordPress repose sur de nombreux aspects qui vont au-delà de la seule version de PHP utilisée :
- la propreté du code PHP,
- l’optimisation et la quantité de requêtes MySQL,
- le niveau de cache éventuellement appliqué,
- le degré de compression des données à charger.
Donc un gain sur la partie PHP de 10 à 20% sera peu notable sur la performance globale d’un site WordPress. Bien entendu, il faudra confirmer cela avec des benchmarks mais il ne faut pas s’attendre à un gain de plusieurs secondes sur le temps de chargement d’une page juste en passant à PHP 8.
L’autre raison de migrer vers PHP 8, c’est bien entendu de bénéficier des nouvelles fonctions qui peuvent être utiles si vous êtes développeur.
Les risques de migrer vers PHP 8
PHP 8 entraine l’obsolescence (ou dépréciation) d’un certain nombre de fonctions de bases de PHP. Du coup, le code compatible avec PHP 7 ne le sera plus forcément avec PHP 8. Au niveau du cœur de WordPress, cela ne pose pas de problème particulier car il a été mis à jour en conséquence.
Là où ça se corse, c’est pour les thèmes et les plugins. Un grand nombre de thèmes et de plugins ne sont pas compatibles avec PHP 8 dans leur version actuelle. Leurs développeurs doivent faire un effort pour les mettre à jour. Pour les extensions les plus populaires, cela devrait être fait assez rapidement. Pour les autres, cela sera au bon vouloir du développeur et cela peut prendre des mois voire ne jamais arriver du tout si l’extension n’est plus maintenue.
Du coup, le risque si vous migrez en PHP 8 rapidement, c’est de vous retrouver avec des extensions ou des thèmes incompatibles. Que se passe-t-il dans ce cas-là? Suivant la criticité de l’incompatibilité, vous pouvez expérimenter l’un des symptômes suivants :
- Warning PHP,
- Erreur PHP,
- Page blanche.
Dans tous les cas, c’est une fonction manquante qui pose problème. La solution est de modifier le code pour remplacer la fonction dépréciée par une nouvelle lorsque c’est possible ou de réécrire le code pour se passer de cette fonction. Si vous n’êtes pas développeur, il faut solliciter une mise à jour de la part de l’auteur de l’extension.
Outre les incompatibilités, PHP 8 va souffrir de bugs à sa sortie. C’est normal pour toute nouvelle version majeure. Il peut y avoir en outre des problèmes de sécurité. Tout cela n’encourage pas à migrer rapidement.
Du coup, quel délai attendre pour migrer en PHP 8?
Si votre site n’est pas critique et que vous ne comptez pas dessus pour vivre, la réponse ne sera pas la même que si votre site est un site d’e-commerce basé sur WooCommerce qui représente une source de revenus pour vous. La réponse dépend également du nombre et du type de plugins que vous utilisez. Si vous n’utilisez que Yoast, Askimet et Contact Form 7, alors la migration pourra être entreprise assez rapidement. En revanche, si vous avez des extensions moins populaires avec un rythme de maintenance plus aléatoire, il est conseillé d’attendre que le développeur sorte une nouvelle version compatible.
En fait, le rapport bénéfices / risques n’est pas en faveur d’une migration rapide vers PHP 8. Il vaut mieux attendre quelques mois. Cela laissera le temps aux développeurs de corriger les bugs de jeunesse dans PHP 8 et aux éditeurs d’extensions de réaliser les mises à jour nécessaires.
PHP 7.4 est supporté jusqu’en décembre 2022. Cela laisse donc deux ans pour se mettre à la page. Après cette date, certains hébergeurs proposeront probablement un support étendu payant pour ceux qui ne voudraient vraiment pas migrer vers PHP 8.
Comment sécuriser sa migration vers PHP 8?
La plupart des hébergeurs permettent d’activer PHP 8 à la volée en changeant un paramètre dans le CPanel, le fichier .htaccess ou le fichier php.ini. Vous pouvez donc faire le test simplement pour voir ce qui se passe et rapidement revenir en arrière si vous notez un dysfonctionnement que vous n’êtes pas en mesure de corriger sur le champ.
Après, tout le monde ne peut pas se permettre de faire de genre de tests même s’ils peuvent être réalisés dans un environnement contrôlé. Il existe des outils qui vont analyser le code PHP et remonter les éventuelles incompatibilités à corriger. La difficulté est qu’il faut savoir se servir de ces outils et ensuite être capable de corriger les erreurs dans le code. Ceci nécessite d’avoir recours à une agence spécialisée dans le développement WordPress.