Mise à jour PHP 8 : pourquoi le faire au plus vite pour votre site ?
La version 8 de PHP a officiellement été dévoilée au grand public le 26 novembre 2020. Elle ne cesse de s’améliorer avec ses nouvelles mises à jour 8.1, sortie en novembre 2021 et 8.2 sortie en décembre 2022. Ces versions apportent tout un lot de puissantes fonctionnalités et corrigent tous les bogues rencontrés dans les versions précédentes. Comparés à ces dernières, PHP 8 et ses successeurs sont 5 fois plus performants. Faire passer votre site web à la version 8 de PHP serait un véritable atout pour le développer. Dans cet article, nous sommes heureux de vous parler un plus de cette mise à jour très cotée dans le secteur du développement web.
Avant tout, qu’est-ce que le PHP ?
PHP est l’un des langages de programmation open source les plus courants dans le monde du développement web. Contrairement à JavaScript qui peut être utilisé en même temps pour le frontend et le backend, le PHP est généralement utilisé pour la communication côté serveur.
Ce qui fait la particularité du PHP, c’est surtout le fait qu’il puisse être intégré dans un fichier HTML. En y ayant recours, votre code source sera à l’abri des regards indiscrets. Pour cela, il vous suffit d’écrire votre code dans un fichier PHP et de l’incorporer dans du HTML. D’autant plus que la combinaison de ces deux langages script crée des sites web performants et dynamiques. À titre d’exemple PHP 8 a permis d’avoir de bons outils de développement de sites ou d’applications web tels que les CMS (wordpress) et les framework (symfony).
Cependant, il est à retenir que toutes les versions de PHP ont un cycle de vie. Après environ trois ans, elles ne sont plus prises en charge (plus de mise à jour possible) et leur utilisation n’est plus du tout sécurisée. D’où l’importance de passer rapidement aux nouvelles versions. Rendez-vous notamment sur https://www.php.net/supported-versions.php pour voir les versions PHP qui sont encore maintenues.
Les avantages de faire la mise à jour PHP 8
Sachant que passer à une nouvelle version majeure demande du temps et présente parfois des risques, il est tout à fait légitime de vouloir savoir si cela en vaut réellement la peine. Pour notre part, passer à PHP 8 est à considérer, car cela présente divers avantages et non des moindres. Ci-après les principaux :
- Une amélioration de performance : le taux de requêtes par seconde pouvant être effectué par PHP 8 est de 20 % à 30 % supérieur à celui des versions antérieures.
- Le renforcement de l’aspect « typé » du langage PHP : PHP 8 garantit l’exactitude des types. Ce qui signifie que vous n’aurez pas à faire constamment des checks manuels. Cela va renforcer la maintenabilité de votre code et diminuer votre dette technique.
- Un code PHP plus facile à lire : PHP 8 a mis l’accent sur le fait de rendre le code PHP plus lisible afin de faciliter son appréhension
- Une meilleure sécurité : comme toute version récente, PHP 8 est meilleur que ses prédécesseurs pour contrer les pirates informatiques.
- Des sites web plus rapides : PHP 8.0 est nettement plus rapide que les versions PHP antécédentes. Elle nécessite moins de mémoires et ses temps d’exécution sont plus rapides.
- Diverses nouvelles fonctionnalités et améliorations
Les nouvelles fonctionnalités de PHP 8
PHP 8 présente tout un lot de nouvelles fonctionnalités qui contribue grandement à l’amélioration des sites web l’utilisant. Mais pour ne pas trop s’étaler, on vous dévoilera uniquement les nouveautés apportées par la version 8 de PHP par rapport à la version 7.4.
La compilation à la volée JIT
Parmi les nouvelles fonctionnalités de PHP 8, la compilation à la volée JIT (Just In time) est la plus acclamée. De base, PHP n’est pas compilé, il est plutôt interprété ligne par ligne. Grâce au compilateur JIT, il est maintenant possible de compiler des parties du code lors de son exécution. Ce qui revient à agir comme une version en cache de celui-ci.
Cette nouvelle fonctionnalité a été testée et approuvée de sorte qu’elle pouvait réellement apporter un changement significatif comparé aux versions PHP 7.4 et 8 sans JIT. Il a été constaté que le compilateur JIT pouvait améliorer les performances de plus de 45 %.
Les unions de types
Depuis PHP 7.4, il est possible de déterminer le type de toute propriété d’une classe. Si vous ne le faites pas comme dans les versions précédentes, cette propriété acceptera n’importe quel type. Ce qui s’avère être assez risqué. En outre, si le type est précisé, mais que vous ne le respectez pas, PHP provoquera une erreur.
Avec la RFC « Union type » de la version 8 de PHP, une propriété peut ne plus accepter un seul type défini, mais plusieurs. Pour cela, vous devrez préciser un ensemble de types en les séparant par une barre verticale et le caractère « pipe » : | .
Les attributs
Les attributs sont sans doute la plus grosse source de débats internes pour la version 8 de PHP. Aussi appelé une « annotation » dans d’autres langages, il s’agit de métadonnées pouvant être ajoutées sur une classe, un paramètre, une fonction ou une propriété. Elle est ensuite disponible par réflexion. Après 4 RFC, en passant par <<Attribute>> et @@Attribute, c’est finalement la notation #[Attribute] qui a été choisie.
Les paramètres nommés
Un autre gros avantage de PHP 8 est la prise en charge des paramètres nommés. C’est-à-dire qu’il est enfin possible de déterminer la valeur d’un paramètre de fonction via son nom au lieu de sa position. Ainsi, les noms des paramètres font désormais partie de la signature des fonctions. Cependant, renommer un paramètre de fonctions reviendrait à détériorer le code qui exploite la fonction. De ce fait, PHP 8 a essayé d’améliorer et d’uniformiser les noms de paramètres. Dans les versions qui la suivent, le fait de renommer est considéré comme cassant la compatibilité descendante.
La promotion de paramètres constructeurs
La version 8 de PHP a également une nouvelle fonctionnalité simplifiant l’écriture de classe simple seulement destinée à servir de schéma pour les objets qui contiennent des données. Afin d’encourager leur utilisation au lieu de celle de tableaux, PHP 8 permet de déclarer les propriétés d’une classe directement à partir des paramètres du constructeur. Ainsi, vous n’aurez plus à les écrire une deuxième fois.
L’opérateur « nullsafe »
PHP 8 dispose d’un nouvel opérateur $->. Celui-ci permet d’appeler une fonction ou de récupérer une propriété de l’objet contenu dans la variable sans que cela provoque une erreur en cas de nullité de la variable. À titre d’exemple, cela peut permettre de chaîner les appels de fonctions en approuvant une valeur nulle à de multiples endroits de la chaîne.
Nouvelles classes, interfaces et fonctions
La version PHP 8 présente de nouvelles classes et interfaces, les voici :
- CURLStringFile
CURL existait déjà dans les anciennes versions de PHP, mais c’est CURLStringFile qui a été ajouté à la version PHP 8. Celui-ci permet de télécharger directement un fichier à partir d’une variable. Il est assez similaire à CURLFile, mais au lieu de fonctionner avec le nom du fichier, il fonctionne plutôt avec le contenu de ce dernier.
- IntlDatePatternGenerator
Dans les versions précédentes de PHP, on ne pouvait créer une date et une heure localisées qu’avec le format prédéfini IntlDateFormatter. Avec la nouvelle classe IntlDatePatternGenerator ajoutée à la version PHP 8 il est désormais possible de spécifier le format d’une heure, d’une date et d’un mois.
- ReflectionFiber
Comme le code PHP était pour ainsi dire toujours de type synchrone, c’est pourquoi l’exécution du code ne s’arrête que lorsque le résultat est renvoyé. À partir de la 8e version de PHP, il est possible de coder en PHP de manière asynchrone et synchrone dans une même pile d’appels. Ainsi, il n’y a plus besoin de passer par des solutions tierces comme auparavant. C’est notamment grâce à l’introduction de la nouvelle classe Fiber ainsi que de la classe Reflection correspondante qui a donné lieu à ReflectionFiber.
Pour ce qui est des nouvelles fonctions, on peut citer les suivants :
- PHP Core qui permet de déterminer si un tableau donné est une liste.
- GD qui permet de créer une nouvelle image à partir d’un fichier ou d’une URL et d’afficher celle-ci sur le navigateur ou sur un fichier.
- MySQLi qui permet d’extraire une seule colonne de la ligne suivante d’un ensemble de résultats.
- Process Control qui permet de manipuler les ressources d’un processus.
- Reflection qui permet le renvoi d’un tableau des variables utilisées dans la fonction « Closure » (fermeture)
- Standard qui synchronise toutes les modifications apportées à un fichier.
- Sodium XChaCha20 qui permet de crypter et décrypter des données.
Pour plus de détails concernant ces derniers, consultez les liens suivants :
https://www.php.net/manual/fr/migration81.new-classes.php
https://www.php.net/manual/fr/migration81.new-functions.php
https://www.php.net/manual/fr/migration82.new-functions.php
Alors, êtes-vous prêt à passer à la mise à jour PHP 8 et tester ses nombreuses nouvelles fonctionnalités ? Pour cela, n’hésitez pas à faire appel à SoftiBox. Notre agence web met à votre disposition des experts dans ce domaine pour que votre passage à la version 8 de PHP se fasse dans les règles de l’art.