Accueil Technologies PHP 8.0 – Nouvelle version de PHP – Compilateur JIT – Union et NullSafe
PHP 8.0 - Nouvelle monture de PHP - Compilateur JIT - Union et NullSafe

PHP 8.0 – Nouvelle version de PHP – Compilateur JIT – Union et NullSafe

par Jérémy PASTOURET
Publié : Mis à jour le

Le vendredi 26 novembre 2020, une nouvelle version majeure de PHP est sortie. Cette version 8.0 apporte de nombreuses nouveautés très intéressantes. Dans cet article, je vais vous donner un aperçu de vos futures habitude de développeur PHP. Grâce à PHP 8, vos plateformes seront plus rapides et plus simples à maintenir.

A la fin de l’article, un petit cadeau vous attend : je vous ai préparé un projet de démonstration de PHP 8 installable en une commande avec Docker-Compose.

PHP – Le compilateur J.I.T (Just In Time – Juste à Temps)

PHP 8 - Le compilateur J.I.T - Just In Time Juste à Temps

PHP propose désormais une compilation à la volée. De nombreux langages comme Perl, Python, Ruby et même Java ont déjà adopté ce procédé. Avec ce compilateur juste à temps, PHP gagne un peu plus en performance. Le principe consiste à compiler votre code au moment de l’exécution, et de le conserver en cache. Si le code est modifié, PHP le compilera de nouveau.

PHP 8 – Arguments nommés

PHP 8 - Arguments nommés

Comme Python, vous allez pouvoir passer les valeurs en paramètres grâce à leur nom. Grâce à cette nouveauté, vous n’aurez plus besoin de vous prendre la tête sur la position de vos arguments. Les arguments nommés marchent avec nos propres fonctions et aussi avec les fonctions natives de PHP.

PHP 7 versus PHP 8 - Arguments nommés

Comme le montre le code ci-dessus, PHP raccourcit votre code grâce aux arguments nommés. En effet, plus besoin de passer toutes les valeurs si vous souhaitez préciser le dernier argument. Dans l’exemple ci-dessus, vous auriez dû passer deux valeurs supplémentaires pour atteindre la propriété double_encode.

PHP 8 – Documentation alternative – Attributs

PHP 7 versus PHP 8 Documentation & Attributs

PHP propose une nouvelle manière de documenter votre code. Ce format permet de structurer des métadonnées avec la syntaxe native de PHP. Les annotations de PHPDoc fonctionnent toujours. Ces nouveaux attributs sont inspirés des Annotations de Java et Attributes en C#, C++, Rust.

PHP 8 + Construction simplifiée et performante de classe

PHP 7 versus PHP 8 - Construction simplifié et performante de classe

Plus besoin de définir toutes les propriétés, ni d’assigner les valeurs dans le constructeur. Tout se passe dans la fonction de construction de la classe. L’image ci-dessus parle d’elle même. On passe de 15 lignes en PHP 7 à 7 lignes avec PHP 8.

Cette nouvelle méthode de construction de classe optimise la lecture et la maintenance du code.

PHP 8 \ Les types unions

PHP - Les types Union

Désormais, une variable peut avoir plusieurs types possibles. Le cas le plus évident est le contrôle d’une variable numérique. Dans les précédentes versions de PHP, vous aviez comme unique option de mettre des commentaires pour indiquer le type de votre variable.

PHP 8 = Match votre futur mot-clé favori

PHP 7 versus PHP 8 - Switch - Case & Match

La fonction match correspond à une version plus simplifiée et concise de switch. La plupart du temps, les opérations avec switch sont très basiques ; ce nouveau mot-clé match convient très bien à cette problématique.

PHP 8 # Null-Safe – Plus besoin de condition

PHP 7 versus PHP 8 - Opérateur NullSafe

Je ne compte plus le nombre de fois où j’ai dû écrire ces nombreuses conditions pour accéder à une propriété. La vérification d’objet et de propriété nulle n’est plus un long problème avec cette nouvelle version de PHP. Alors retenez bien cet opérateur ?->.

PHP * Des erreurs plus précises et plus cohérentes

PHP 8 - Des erreurs plus précises et plus cohérentes

De nouveaux types d’erreurs font leur apparition, permettant une meilleure compréhension de ce qu’il peut se passer dans une application PHP. Il existe désormais TypeError et ValueError, indiquant respectivement un problème de type et un souci de valeur.

PHP /_\ Dites au revoir strpos => str_contains

PHP - nouvelles fonctions de manipulation de chaine de caractères

Enfin une fonction permettant de vérifier qu’une chaîne de caractères contient une autre chaîne de caractères. Traditionnellement, il fallait utiliser la fonction substr et être précautionneux sur les paramètres de cette fonction. Maintenant, c’est de l’histoire ancienne avec str_contains.

De plus, les fonctions str_starts_with et str_ends_with vous permettront de vérifier qu’une chaîne commence ou finit par une autre chaîne de caractères. Très pratique pour vérifier des préfixes ou des extensions de fichiers.

PHP – N’ayez plus peur des divisions

PHP - Division sécurisée et protégée

Lorsqu’on manipule des nombres dans des variables, on n’est jamais à l’abri d’une division par zéro. Ce type de faute engendre une erreur qui peut faire planter votre application en production. Grâce à fdiv, vous vous assurez de gérer cette erreur sans problème. Si le cas se présente, PHP renverra la valeur INF pour infini.

Conclusion

Bannière conclusion

Maintenant que vous connaissez les fonctionnalités principales de PHP 8, je vous invite vivement à essayer cette nouvelle version.

Je vous ai donc créé un projet tout-en-un, utilisable avec docker-compose. Il vous suffit de remplir le formulaire ci-dessous pour accéder au projet complet :

L’équipe de PHP et leurs contributeurs ont bien travaillé sur cette nouvelle version. J’en profite pour les remercier pour toutes les améliorations apportées à ce langage que j’affectionne. Dans cet article, je vous ai présenté les nouveautés principales de PHP : la liste complète se trouve sur le site de PHP.

Et vous, que pensez-vous de cette nouvelle version de PHP ? Allez-vous migrer vos projets ?

Pour aller plus loin avec PHP, je vous invite à lire notre article dédié à la mise en place d’un système de vérification de code PHP automatisé.

Vous pourriez aussi aimer

2 commentaires

Lucas 29 décembre 2020 - 12 h 11 min

Un article de qualité, c’est tout ce qu’il y a à en dire !

Un grand merci pour cette présentation simple et efficace mais aussi très bien structurée !
Le principal y est, pour plus d’information bien évidemment la DOC php reste la référence pour les sujets secondaires, mais vraiment merci votre article m’a bien aidé pour me mettre à jour 😉 !

Répondre
Jérémy PASTOURET 4 janvier 2021 - 14 h 49 min

Avec plaisir Lucas, un grand merci pour ton commentaire !

Répondre

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.