IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

PHP 7.3 est disponible en version stable :
Un aperçu des nouveautés du langage de programmation côté serveur

Le , par Michael Guilloux

1.1KPARTAGES

12  0 
Conformément à son habitude de publier une nouvelle version en fin d'année (fin novembre - début décembre), l'équipe de développement de PHP vient d'annoncer la sortie de la troisième mise à jour de fonctionnalités de PHP 7, à savoir PHP 7.3.

Avant d'aller plus loin, rappelons que la fin de vie de PHP 5.x, la dernière branche avant PHP 7.x, est prévue pour le 31 décembre 2018, donc dans une vingtaine de jours. Passé cette date, aucune version de PHP 5.x ne va encore bénéficier de mise à jour de sécurité, puisque PHP 5.6, la dernière version de la branche, sera également coupée de ces mises à jour. La communauté PHP le sait depuis un bon moment, mais il semble qu'elle n'a pas du tout été en alerte.

D'après W3Tech, la version 5.x de PHP est à ce jour (6 décembre) utilisée par 75,6 % des sites Web utilisant PHP. Or PHP est aussi utilisé par 78,9 % de tous les sites Web comme langage côté serveur. Ce qui veut dire qu'environ 60 % de tous les sites Web utilisent PHP 5.x et pourraient être exposés après le 31 décembre 2018. Il est recommandé de migrer vers PHP 7.1+ (PHP 7.0 ne bénéficie plus de mise à jour de sécurité depuis le 3 décembre).


De PHP 7.0 à PHP 7.2

Depuis PHP 7.0, ça fait un bon lot de fonctionnalités qui se sont ajoutées ; des fonctionnalités qu'il peut être important de rappeler pour ceux qui sont encore sur PHP 5.x.

PHP 7.0 a apporté des gains de performance avec un moteur Zend Engine jusqu'à deux fois plus rapide que dans la version 5.6, mais également de nombreuses améliorations et nouvelles fonctionnalités. Il s'agissait, entre autres, d'une utilisation de la mémoire considérablement réduite, l'arbre syntaxique abstrait (AST), un support 64-bit compatible, une amélioration de la hiérarchie Exception, de nombreuses erreurs « fatales » converties en « Exceptions », un générateur de nombre aléatoire (RNG) sécurisé, la suppression des anciennes interfaces de programmation des applications serveur (SAPI) et extensions ainsi que celles qui ne sont pas prises en charge, l'opérateur de coalescence null (??), les déclarations de type Return et Scalar, les classes anonymes, les asserts zero cost, etc.

La version 7.1.0 du langage de développement Web côté serveur a également suivi avec de nouvelles fonctionnalités et encore des gains de performances : jusqu’à 35 % plus rapide pour les charges de travail avec une utilisation intensive du CPU. En ce qui concerne les nouvelles fonctionnalités de PHP 7.1.0, il s'agissait entre autres du support des types nullable, l'introduction d'un type de retour void qui permet d’indiquer qu’une fonction ne retourne rien, un nouveau pseudo-type similaire à callable appelé Iterable, l'ajout d'un support pour spécifier la visibilité des constantes (public, protected et private), la gestion des exceptions par capture multiple, etc.

PHP 7.2.0 a introduit comme principale nouveauté la bibliothèque cryptographique Sodium qui a été intégrée au noyau du langage. Cette bibliothèque logicielle permet le chiffrement, le déchiffrement, les signatures, le hachage de mots de passe et plus encore. Au-delà de Sodium, PHP 7.2 est venu avec des améliorations et nouvelles fonctionnalités comme la possibilité de convertir des clés numériques dans les objets et tableaux lors de cast, le comptage d'objets non dénombrables, HashContext en tant qu'objet, l'algorithme Argon2 pour le hachage de mot de passe, l'amélioration des constantes TLS, etc.


Nouveautés de PHP 7.3

Comme les mises à jour précédentes, PHP 7.3.0 arrive avec de nombreuses améliorations et de nouvelles fonctionnalités. Parmi les plus importantes, on peut noter le fait que PHP 7.3 rend plus flexibles les syntaxes Heredoc et Nowdoc. Les syntaxes Heredoc et Nowdoc font partie des quatre façons de déclarer des chaines de caractères en PHP. Pour la syntaxe Heredoc par exemple, après l'opérateur <<<, un identifiant est fourni, suivi d'une nouvelle ligne. La chaîne en elle-même vient ensuite, suivie du même identifiant pour fermer la notation. L'identifiant de fin doit commencer à la première colonne de la ligne. De plus, l'identifiant doit suivre les mêmes règles que n'importe quel autre libellé PHP : il ne doit contenir que des caractères alphanumériques et des soulignés, et doit commencer par un caractère non numérique ou un souligné (underscore). Ci-dessous un exemple d'utilisation de Heredoc.

Code PHP : Sélectionner tout
1
2
3
4
5
6
7
<?php 
class foo { 
    public $bar = <<<EOT 
bar 
EOT; 
} 
?>

Nowdoc est identifié avec la même séquence <<< utilisée par Heredoc, mais l'identifiant qui suit est entouré de guillemets simples. Ci-dessous un exemple d'utilisation de Nowdoc.

Code PHP : Sélectionner tout
1
2
3
4
5
6
7
<?php 
class foo { 
    public $bar = <<<'EOT' 
bar 
EOT; 
} 
?>

Pour fermer la chaîne, jusqu’en PHP 7.2, vous deviez écrire l’identifiant à la ligne (collé à gauche, sans indentation). Heureusement, cette syntaxe (Heredoc et Nowdoc) est plus flexible avec PHP 7.3 et permet d’indenter l’identifiant de fin.

Code PHP : Sélectionner tout
1
2
3
4
5
6
7
8
<?php 
class foo { 
    public $bar = <<<EOT 
bar 
    EOT; 
} 
// L'identifiant peut être indenté 
?>

Il faut également noter qu'actuellement, une nouvelle ligne doit suivre le marqueur pour terminer le Heredoc/Nowdoc. Mais PHP 7.3 changera cela et vous permettra de terminer le Heredoc/Nowdoc sur la même ligne.

PHP 7.3 autorise aussi les virgules de fin dans l’appel de fonction. En PHP, il est en effet possible de laisser trainer une virgule à la fin de la liste des éléments dans un tableau. PHP 7.2 a étendu cette possibilité aux espaces de noms groupés. Dans PHP 7.3, ces virgules seront autorisées dans les déclarations de fonctions.

De nouvelles fonctions ont également été ajoutées dans PHP 7.3. C'est le cas par exemple de la fonction is_countable(). Il existe déjà une fonction count() qui renvoie une erreur si le paramètre qui lui est passé n’est pas énumérable. Dans PHP 7.3, la fonction is_countable() fait son apparition afin de vérifier que la valeur est énumérable avant de réaliser un comptage. La nouvelle version du langage de programmation Web côté serveur introduit encore deux nouvelles fonctions array_key_first() et array_key_last() pour récupérer la première ou dernière clé d’un tableau.

Comme autres nouveautés, notons également que l'extension PCRE a été mise à niveau vers PCRE2 ; la possibilité de configurer l'extension JSON pour lancer une exception en cas d’erreur ; l'amélioration de l’algorithme de hachage Argon2 avec l’ajout d'une nouvelle variante recommandée appelée Argon2id.

Notons aussi la dépréciation et la suppression des constantes insensibles à la casse entre autres fonctionnalités dépréciées dans PHP 7.3. Vous trouverez sur le site officiel de PHP la liste exhaustive des changements dans cette version.

Téléchargements de PHP 7.3

Sources : Site officiel PHP, Kinsta

Et vous ?

Quelles versions de PHP utilisez-vous ?
Que pensez-vous de cette nouvelle version du langage ?
Quelles sont les fonctionnalités que vous appréciez le plus ?
Quelles fonctionnalités ou améliorations attendez-vous encore ?

Voir aussi :

Les benchmarks réalisés sur la dernière préversion de PHP 7.3 sont prometteurs, et la sortie de la version stable se profile à l'horizon
W3Tech : plus de 60 % des sites Web tournent sur PHP 5.x, une version qui ne sera plus supportée après le 31 décembre 2018
PHP 7.2 est disponible en version stable avec la bibliothèque de cryptographie Sodium, et d'autres améliorations et nouvelles fonctionnalités
PHP 7.1.0 disponible avec le support des types nullables et de nombreuses autres fonctionnalités, mais aussi des gains de performance
PHP 7.0.0 officiellement disponible, et son code source téléchargeable sur le site officiel du langage de programmation

Une erreur dans cette actualité ? Signalez-nous-la !