Il s’agit d’un court article de blog où nous expliquerons pourquoi vous devriez penser à utiliser PHP8, mais aussi pourquoi vous ne devriez pas… Oui, vous savez ce fameux “ça dépend”.
Quoi de neuf dans PHP8 ?
Je ne vais pas vous dire ce qu’il y a de nouveau, vous trouverez suffisamment d’articles de blog à ce sujet. Je vous donne l’officiel : https://www.php.net/releases/8.0/fr.php
Une chose que l’on peut dire c’est que cela n’augmentera pas les performances comme lorsque vous êtes passé de PHP5.6 à PHP7+, non, pas cette fois, mais c’est tout de même tout à fait correct.
Pourquoi devriez-vous mettre à jour vers PHP8 ?
Je ne parlerai que de sécurité Web, pas spécialement de sécurité WordPress.
Comme dans WordPress, lorsqu’une nouvelle version est disponible, vous verrez que certaines fonctions ou méthodes ont été dépréciées. Cela signifie que vous ne devez plus les utiliser. Dans WordPress, vous pouvez toujours le faire, même 10 ans plus tard car WordPress est très laxiste à ce sujet. De mémoire, vous recevrez une notice PHP lorsque vous utilisez une fonction dépréciée, c’est tout.
En PHP, c’est à peu près la même chose avec une énorme différence : vous pouvez toujours les utiliser et obtenir des notices, mais à un moment donné, ces fonctions déclencheront une erreur fatale par conception ou parce qu’elles ont été supprimées.
Oui, PHP peut supprimer une fonction de son noyau, pas comme WordPress !
Ok alors, pourquoi c’est une bonne chose en termes de sécurité ? J’ai un bon exemple mais je sais qu’il y en a encore bien plus : create_function
Cette fonction a été introduite dans PHP4 et dépréciée dans la 7.2 et est supprimée depuis la 8.0. Donc, puisque la dernière version prise en charge par PHP est la 7.3 (à ce jour), vous ne devriez pas l’utiliser dans vos développements, n’est-ce pas ?
Les malwares ne sont pas toujours nouveaux, et même un « nouveau malware » signifie nouveau en termes de timing et non de codage. Plus c’est simple, plus c’est facile de pirater. De plus, d’anciens malwares circulent encore sur le Web depuis des années et des années maintenant.
À quoi ça sert ? La plupart des anciens malwares utilisent create_function
, car la plupart des anciens malwares ont été créés avant PHP 7.2. L’utilisation de PHP8 déclenchera une erreur fatale lors de l’exécution de leurs scripts, ce qui est LA bonne nouvelle de cet article de blog.
Et comme je l’ai dit, ce n’est pas seulement create_function
, il y a beaucoup de comportements obsolètes, supprimés et modifiés dans chaque mise à jour PHP.
Pourquoi ne pas mettre à jour vers PHP8 ?
“Quoi ? Pourquoi tu fais ça !?” Oui, je sais… Mais lorsque vous utilisez WordPress, vous devez garder à l’esprit que tout le monde ne mettra pas à jour son code pour l’adapter à la dernière version de PHP. Si vous n’utilisez que quelques plugins, ou même juste les vôtres, c’est 100% ok, mais s’il s’agit d’un site de e-commerce, et/ou avec de nombreux plugins utiles, vous pouvez rencontrer des erreurs, des incompatibilités, etc.
L’année dernière, l’équipe Yoast a publié un rapport sur ce point : https://developer.yoast.com/blog/the-2020-wordpress-and-php-8-compatibility-report/ vous devriez le lire avant de passer à PHP8.
Alors maintenant, utilisiez-vous toujours create_function dans vos développeurs ? Continuerez-vous toujours à utiliser une ancienne version de PHP sur vos sites Web ? À vous de voir.