La nouvelle version PHP 8.0 disponible !

A

Technique

PHP a sorti fin novembre la nouvelle version majeure de son langage :

Officiellement mis à la disposition du public le 26 novembre 2020, PHP 8.0 ajoute un grand nombre d’optimisations et de puissantes fonctionnalités au langage. Cette mise à jour permet notamment d’écrire un meilleur code et de construire des applications plus puissantes.

En plus des nombreuses améliorations du langage, cette dernière apporte également de nouvelles fonctionnalités :

Les unions de types (documentation, RFC) :

Les types d’union (Union Types) acceptent des valeurs qui peuvent être de différents types. Maintenant, la RFC des types d’Union 2.0 propose d’ajouter la prise en charge des types d’Union dans les signatures de fonctions, de sorte que l’utilisateur ne dépende plus de la documentation en ligne.

Les arguments nommés (RFC) :

Les arguments nommés fournissent une nouvelle façon de passer des arguments à une fonction dans le PHP. Ces derniers permettent de passer des arguments à une fonction en fonction du nom du paramètre, plutôt que de la position du paramètre.

Les attributs, inspirés des annotations (documentation, RFC) :

Jusqu’à la version 7.4 de PHP, les doc-comments étaient le seul moyen d’ajouter des métadonnées aux déclarations de classes, fonctions, etc. Maintenant, la RFC Attributs v2 introduit des attributs pour PHP en les définissant comme une forme de métadonnées structurées et syntaxiques qui peuvent être ajoutées aux déclarations de classes, propriétés, fonctions, méthodes, paramètres et constantes.

La promotion des propriétés du constructeur, permettant d’indiquer qu’un paramètre de constructeur doit être stocké dans un attribut (documentation, RFC) :

Suite à une discussion en cours sur la façon d’améliorer l’ergonomie des objets en PHP, le RFC « Constructor Property Promotion » propose une nouvelle syntaxe plus concise qui simplifiera la déclaration de propriété, la rendant plus courte et moins redondante.

L’opérateur nullsafe, permettant le chaînage d’appels de méthodes/d’attributs même si un élément de la chaîne est null (RFC) :

Ce RFC introduit l’opérateur $variable?-> avec évaluation complète du court-circuit.
Dans l’évaluation de court-circuit, le second opérateur n’est évalué que si le premier opérateur n’évalue pas à null. Si un opérateur d’une chaîne est évalué à null, l’exécution de la chaîne entière s’arrête et est évaluée à null.

Les WeakMap (documentation) :

PHP 7.4 a ajouté la prise en charge des références faibles comme moyen de conserver une référence à un objet qui n’empêche pas l’objet lui-même d’être détruit. C’est pourquoi cette RFC introduit une classe WeakMap pour créer des objets à utiliser comme clés de weak map qui peuvent être détruites et retirées de la weak map s’il n’y a pas d’autres références à l’objet clé.

La compilation Juste à temps (JIT – Just in time) :

Selon la RFC de JIT, la mise en œuvre du compilateur « just in time » devrait améliorer les performances de PHP, mais uniquement sur certains types d’application, notamment les applications à longue durée d’exécution.

En savoir plus !

Vous trouverez plus d’informations sur la présentation des changements de PHP8 (en français).

PHP 8.0 est disponible sur les solutions d’hébergement de Net4All sous Debian, en remplacement de votre version de PHP actuelle, ou sur un nouveau serveur.

N’oubliez pas de consulter le guide de migration du code de PHP 7.4 à PHP 8.0 et de vérifier la compatibilité de votre framework et ses dépendances afin de garantir une mise à jour sans difficulté.

Article rédigé par Tristan Charbonneau, Administrateur Systèmes Linux