PHP 8 : le guide complet
Publié: 2021-01-05Le 26 novembre 2020, nous sommes entrés dans le nouveau monde de PHP 8. Chaque mise à jour PHP apporte une multitude de nouvelles fonctionnalités majeures. Bien que toutes les mises à jour ne soient pas importantes pour la majorité des utilisateurs occasionnels, même d'autres mises à jour sont trop spécialisées pour la majorité des développeurs WordPress chevronnés.
Mais quel que soit le niveau de développement sur lequel vous travaillez, certains aspects de la nouvelle version, tels qu'une augmentation de la vitesse et des modifications importantes qui pourraient nuire au code existant, pourraient avoir un impact négatif sur votre flux de travail quotidien.
Dans ce guide, nous allons passer en revue les changements les plus importants de cette nouvelle version de PHP 8. Plongeons-nous.
Pourquoi les mises à jour PHP se produisent
En tant que moteur, PHP évolue constamment. De nouveaux bits sont toujours modifiés ou ajoutés pour aider à optimiser le code et rendre PHP plus facile et plus simple à utiliser.
Les créateurs de plugins et de thèmes WordPress, ainsi que les développeurs de sites Web, doivent rester au courant des modifications PHP lorsqu'elles se produisent. Ce faisant, vous aurez une longueur d'avance et éviterez de parcourir des pages de documentation après quelques mises à jour supplémentaires.
Chaque nouvelle version de PHP est destinée à apporter des changements positifs à l'environnement de développement. Malheureusement, il y a des moments où certains ajustements peuvent endommager votre code existant.
Lorsque des attributs incompatibles, antérieurs ou obsolètes entrent en conflit avec de nouvelles mises à jour PHP, cela peut finir par casser l'intégralité de votre site ou entraîner l'arrêt de certaines zones du site.
C'est une bonne idée de savoir quelles modifications de rupture potentielles sont publiées afin que vous puissiez les traiter directement dans le code personnalisé. Cela vous aide également à utiliser un code plus récent qui a des expressions plus optimisées.
Cependant, même si vous n'avez pas touché un seul morceau de code personnalisé dans votre carrière, lorsque votre tableau de bord WordPress ajoute un avis WordPress PHP Update Required pour la version mise à jour de PHP, vous devrez décider si vous allez mettre à niveau ou pas.
Invariablement, la réponse à cette question est presque toujours oui. Mais avant de le faire, il est judicieux d'examiner les principales modifications apportées aux fonctionnalités et de s'assurer qu'il n'y a rien qui puisse vous causer des problèmes. Comme le dit le vieil adage, « Mieux vaut être prudent que désolé. »

Quoi de neuf dans la version PHP 8
Cette version de PHP n'est en aucun cas la mise à jour la plus importante jamais réalisée. Mais il y a encore des changements passionnants que nous devrions examiner.
À certains égards, c'est un peu un soulagement que PHP 8 soit une mise à jour relativement petite. Cela signifie qu'il y a moins de changements de rupture qui pourraient causer des problèmes à votre code existant.
En d'autres termes, la version actuelle de PHP vous offre de nouvelles fonctionnalités intéressantes sans qu'il soit nécessaire de passer des heures à résoudre des problèmes.
Bien que certaines modifications supplémentaires soient apportées à cette version de PHP, ce guide couvrira les plus pertinentes.
Compilateur juste à temps (JIT)
L'ajout le plus excitant et certainement le plus important à la nouvelle version de PHP est le compilateur Just In Time, ou JIT.
Comme vous le savez probablement, PHP est un langage qui est interprété. Cela signifie qu'il s'exécute en temps réel plutôt qu'à une heure de lancement prédéterminée après avoir été compilé.
Ce que JIT apporte à la table pour PHP est du code compilé. Avec le code compilé, les performances sont améliorées dans certaines situations.
Si vous êtes comme beaucoup de développeurs PHP, vous travaillez probablement avec des applications Web. Malheureusement, JIT n'aidera pas beaucoup avec les applications Web. Mais cela marque une énorme amélioration lorsqu'il s'agit de tâches telles que :
- L'analyse des données
- rendu 3D
- IA
- Processus supplémentaires qui prennent beaucoup de temps à s'exécuter
Bien qu'il ne s'agisse pas nécessairement des applications PHP actuelles les plus courantes, les développeurs avant-gardistes se diversifient certainement davantage avec PHP.
Le compilateur JIT aide à rendre PHP plus flexible pour le faire.
En fait, JIT est presque assuré d'ouvrir les horizons de PHP et d'attirer de nouveaux développeurs intéressés à l'utiliser à de nouvelles fins.
Pour les projets existants, cela ne fera probablement pas grand-chose.
Avant d'implémenter JIT, assurez-vous de l'avoir testé dans un environnement isolé pour voir s'il y a une amélioration de vos performances.
Les attributs
La nouvelle version de PHP prend en charge les attributs. Ce sont de minuscules métadonnées que vous ajoutez à votre code, telles que des paramètres, des classes et des fonctions.
Cela signifie que vous n'êtes plus obligé d'utiliser les docblocks comme solution de contournement standard. Bien que cela ressemble à un changement mineur, cela rend la vie beaucoup plus facile pour les développeurs PHP.
Vous pouvez maintenant ajouter n'importe quel nombre d'attributs à n'importe quel morceau de code individuel, puis les importer avec des instructions use.
Vous pouvez même ajouter des paramètres aux attributs.
Pour ajouter un attribut à votre code, ajoutez simplement deux signes "inférieur à" et deux signes "supérieur à" entourant l'attribut.
Il est important de noter que les attributs ne sont pas rétrocompatibles. Ils provoqueront des erreurs s'ils sont portés dans une ancienne version de PHP.
Comme vous le savez probablement, la solution de contournement standard utilisant docblock est entièrement fonctionnelle. Mais ça a aussi toujours été assez maladroit. Avec la nouvelle version de PHP, vous pouvez désormais ajouter directement des attributs.
Bien que ce soit un petit ajout à PHP, ses implications sont énormes.
Nouvelle expression de correspondance
Les instructions Switch étaient une version plus robuste des instructions if. Cependant, les nouvelles expressions de correspondance en PHP améliorent encore ce concept.
C'est plus court et plus strict, ce qui l'aide à mieux attraper les bugs. Il combine également des conditions et ne nécessitera aucune instruction break.
De cette manière, les nouvelles expressions de correspondance sont une nette amélioration.
Switch a toujours l'avantage sur match car il a la possibilité d'utiliser plusieurs expressions. Mais en plus de cela, pensez à faire quelques lectures sur les expressions de correspondance.
Jusqu'à présent, ils ressemblent à un remplacement supérieur que vous voudrez peut-être utiliser.
Types de syndicats
L'un des éléments clés de PHP sont les types : l'affectation d'une variable sous forme de booléen, d'entier, de null et ainsi de suite.
Avant cette version de PHP, vous n'étiez autorisé à affecter des variables qu'avec des types uniques. PHP 8 vous permet d'attribuer deux types ou plus, autrement appelé un type d'union.
À titre d'exemple, vous pourrez attribuer un type flottant et entier et il peut utiliser l'un ou l'autre. Ils sont spécifiés avec une ligne entre les types, comme float|int.
Bien sûr, vous ne pourrez pas combiner void avec d'autres types car ils s'excluent mutuellement.
Les types redondants ou en double, tels que float|float, ne fonctionneront pas non plus.
Dans les anciennes versions de PHP, vous pouviez utiliser des annotations PHPDoc pour essayer de créer un type d'union fonctionnel. Maintenant, vous pouvez ignorer ce type de solution de contournement et simplement affecter vos variables avec plusieurs types.
Retour statique et types mixtes
En tant que développeur, il est de notoriété publique que les retours PHP sont utilisés pour renvoyer la valeur d'une fonction. Avant cette version, il n'était pas possible d'utiliser le type statique.

« Parent » et « self » étaient des types de retours valides, mais « statique » ne l’était pas. Ce problème a été entièrement résolu dans la nouvelle version de PHP.
Bien que ce ne soit pas un cas d'utilisation incroyablement courant, s'il se présente, vous serez certainement heureux d'y avoir accès.
Vous trouverez également un nouveau type mixte. Il pourrait être plus précisément décrit comme un pseudo-type car il représente tous les autres types qui existent en PHP.
Il est préférable de l'utiliser lorsque vous faites face à des situations qui vous obligent à travailler avec plusieurs types différents.
Mixed sera votre valeur par défaut si vous ne choisissez pas un type spécifique.
Souvent, il est préférable d'utiliser le nouveau type d'union plutôt que mixte. C'est parce que vous voudrez probablement être plus précis.
Cependant, celui-ci vous servira toujours.
La réalité est que ni l'un ni l'autre n'est aussi grand que le type de syndicat, mais ils marquent certainement une amélioration.
Nouvelles fonctions PHP 8
La nouvelle version de PHP arrive avec de nouvelles fonctions avec lesquelles vous pouvez travailler.
- str_starts_with et str_ends_with - cela vérifiera si une chaîne se termine ou commence par une ligne spécifique
- fdiv - cela permettra une division qui réagira de manière cohérente lors de la division par zéro
- str_contains - similaire à str_starts_with et str_ends_with mais vérifiera une chaîne complète
- get_debug_type - agit de la même manière que gettype , mais renverra des informations supplémentaires, comme le nom de la classe
- get_resource_id - cela facilite l'obtention d'un identifiant pour une ressource, telle qu'une connexion à une base de données
- preg_last_error_msg - renvoie un message d'erreur lisible en langage clair
Testez certaines de ces nouvelles fonctions pour voir comment vous pouvez en tirer le meilleur parti.
Arguments nommés
Certains pourraient l'aimer et certains pourraient le mépriser. Dans tous les cas, les arguments nommés sont dans la nouvelle version de PHP.
Les arguments vous permettent de transmettre des données à une fonction. Les arguments nommés vous permettent de faire de même en passant le nom de l'argument plutôt que l'ordre.
Vous pourrez toujours les combiner avec des arguments ordonnés. Mais vous pourrez ignorer les paramètres facultatifs si vous le souhaitez.
Concrètement, cela signifie un code plus propre et peu d'erreurs. Après tout, plus votre code est serré, mieux c'est. C'est beaucoup plus facile de travailler avec.
Il est possible que cela cause un problème avec la modification des noms d'arguments et la compatibilité descendante, ce qui pourrait provoquer des ruptures dans les anciennes versions de PHP. Mais pour de nombreux développeurs et programmeurs, ces arguments nommés sont un changement bienvenu.
Changements marquants dans PHP 8
La nouvelle version de PHP vient avec quelques changements de rupture. Cela peut provoquer des erreurs si vous effectuez une mise à niveau ou un portage vers d'anciennes versions de PHP. Jetez un œil à cette liste de changements de rupture et voyez lesquels vous affecteront.
- Les avertissements du moteur ont été reclassés afin qu'ils affichent le niveau de gravité approprié, comme les avis, les avertissements et les erreurs fatales. Considérez ceci comme un changement mineur qui n'aura pas d'impact sur de nombreux projets.
- TypeError s'affichera désormais systématiquement sur les fonctions internes. Cela a un impact sur la rétrocompatibilité plus que nous ne le pensons encore, mais c'est néanmoins un changement solide.
- Plusieurs modifications ont été apportées aux niveaux de rapport d'erreurs qui étaient auparavant silencieux et ignorés. En d'autres termes, les nouvelles erreurs que vous n'aviez peut-être pas vues auparavant devraient maintenant se propager.
- Le tri est plus fiable et stable. Bien que PHP 7 ait apporté de gros changements au tri, la dernière mise à jour endommage beaucoup moins le code existant.
- Les noms avec espace de noms sont désormais un jeton unique. Ils ne peuvent pas avoir d'espace à l'intérieur. L'impact de ce changement est faible et simple à corriger.
- Dans les versions précédentes de PHP, les méthodes dont le nom correspondait à la classe étaient interprétées comme des constructeurs. Dans la nouvelle version, vous devrez utiliser la méthode __construct().
Il existe des dizaines d'autres petites mises à jour qui causeront rarement des problèmes. De manière générale, vous n'aurez pas beaucoup de problèmes avec la mise à jour PHP actuelle.
Mise à niveau de votre version PHP dans WordPress
En tant que développeur WordPress, vous savez à quel point il est important de garder votre version de PHP à jour. Il est alarmant de savoir qu'une partie très importante des utilisateurs de WordPress fonctionnent toujours sur PHP 5.6, ce qui est un énorme handicap.
Même si vous avez utilisé PHP 7.4 et que vous pensiez être complètement à jour, il est certainement temps de passer à la dernière version de PHP.
Exécuter votre site WordPress sur une ancienne version de PHP est un risque de sécurité majeur. Les versions PHP obsolètes ont des flux de sécurité exploitables dont les pirates profitent régulièrement.
La seule façon de réparer les nids-de-poule existants est de garder PHP à jour à tout moment.
Vous voudrez également exécuter un puissant plugin de sécurité WordPress pour renforcer votre protection de sécurité.
Une autre raison de mettre à jour votre PHP est la vitesse. Chaque mise à jour s'accompagne de vitesses plus rapides et de fonctions plus optimisées. Bien sûr, la plus grande différence notable était entre PHP 5.6 et 7.4. Mais vous remarquerez certainement une augmentation de la vitesse avec la dernière mise à jour.
La compatibilité est la dernière raison pour laquelle il est important de garder PHP à jour dans WordPress.
Une version obsolète de PHP peut causer de nombreux problèmes différents qui peuvent provoquer des problèmes ou complètement casser un site Web.
Au-delà, il existe des thèmes et des plugins qui nécessitent une version PHP entièrement à jour pour fonctionner.
Avant d'exécuter la mise à jour, assurez-vous d'avoir un plugin de sauvegarde WordPress en cours d'exécution au cas où il y aurait des conflits après l'exécution de la mise à jour.
Mettre à jour votre version de PHP est assez simple. Tout ce que vous avez à faire est de vous connecter à votre cPanel ou au tableau de bord d'administration de l'hôte que vous utilisez, de trouver le gestionnaire de versions PHP et de cocher la dernière version. Mais avant d'exécuter la mise à jour, vérifiez auprès de votre hébergeur qu'il prend en charge la dernière mise à jour PHP. Certains peuvent fonctionner sur des logiciels plus anciens.
Pour plus d'informations sur PHP et WordPress, consultez la documentation officielle de WordPress.org sur WordPress et PHP 8.
Conclusion : PHP 8 et l'avenir de PHP
Bien que ce ne soit pas la mise à jour monstre que PHP 7.0 - 7.4 était, PHP 8 a encore beaucoup de choses à offrir dont vous pouvez profiter.
Du compilateur JIT aux nouveaux attributs, expression de correspondance et autres fonctions utiles pour les développeurs, il est temps de se familiariser avec cette nouvelle version importante de PHP.
Quelles parties de cette mise à jour prévoyez-vous d'utiliser le plus dans votre flux de travail quotidien ?
Kristen écrit des tutoriels pour aider les utilisateurs de WordPress depuis 2011. Vous pouvez généralement la trouver en train de travailler sur de nouveaux articles pour le blog iThemes ou de développer des ressources pour #WPprosper. En dehors du travail, Kristen aime tenir un journal (elle a écrit deux livres !), faire de la randonnée et du camping, cuisiner et vivre des aventures quotidiennes avec sa famille, dans l'espoir de vivre une vie plus présente.
