Apparue
début décembre 2018, la version 7.3 de PHP apporte de nombreuses
nouveautés ainsi qu’un gain significatif en termes de performances
au point de marquer la fin des mises à jours de sécurité de la
version 5.X qui demeure à l’heure actuelle la version la plus
utilisée de ce langage très répandu.
Comment
cette nouvelle version peut-elle convaincre les développeurs de
franchir définitivement le pas vers la version 7.x qui est
tout-de-même trois fois moins utilisée ?
Des
syntaxes Heredoc et Nowdoc plus flexibles
La
principale nouveauté de PHP 7.3 réside dans le fait que les
syntaxes Heredoc et Nowdoc sont plus flexibles
qu’auparavant. En effet, avec la précédente version 7.2 de PHP,
l’identifiant de fin devait impérativement être écrit à la
ligne et être collé à gauche sans indentation sous peine de
générer une erreur de syntaxe, ce qui est désormais rendu possible
avec la dernière version.
| En PHP 7.2, impossible d'indenter l'identifiant de fin dans un Heredoc |
| En PHP 7.3, il est possible d'indenter l'identifiant de fin |
Virgule
de fin dans l’appel de fonction enfin autorisée
PHP
7.3 autorise les virgules de fin dans l’appel de fonction.
Concrètement cela signifie qu’il est maintenant possible de
laisser trainer une virgule à la fin de la liste des éléments dans
un tableau. On se rappelle que PHP 7.2 avait étendu cette
possibilité aux espaces de noms de groupe.
La
version 7.3 y ajoute la possibilité de recourir aux virgules dans
les déclarations de fonctions.
| Déclaration de la fonction var_dump( ) en PHP 7.3 |
Configurer
l’extension JSON pour lancer une exception en cas d’erreur
Auparavant
avec la version PHP 7.2, la fonction json_decode( ) retournait
NULL en cas d’erreur ce qui pouvait porter à confusion car
NULL peut être considérée comme une valeur valide, pour y
remédier le développeur devait récupérer l’erreur avec les
fonctions json_last_error ( ) et json_last_error_msg( ).
Aujourd’hui
avec la version 7.3, il est possible, avec la flag
JSON_THROW_ON_ERROR, de modifier la gestion d’erreur des
fonctions JSON en envoyant une exception de type JsonException
pouvant être gérée dans un try { } catch { }
Affectation
par référence avec la fonction list ( )
Le
fait d’éclater des valeurs d’un tableau avec la fonction list (
) pour les récupérer par référence n’était pas possible avec
PHP 7.2. Cela est maintenant rendu possible avec la version 7.3.
| Aperçu de la fonction list ( ) |
Pour
rappel, en PHP, une variable doit être préfixée par &.
Apparition
de la fonction is_countable( ) en complément de la fonction count (
)
Avant
PHP 7.3, lorsque l’on passait un paramètre non énumérable dans
une fonction count ( ) une erreur était renvoyée, maintenant
il est possible de vérifier qu’une valeur est énumérable par
l’emploi de la nouvelle fonction is_countable ( )
| La variable instance n'est pas énumérable |
La
récupération de clés dans un tableau simplifiée avec PHP 7.3
Avant
le passage à la version 7.3 de PHP, le développeur devait enchaîner
plusieurs fonctions de manipulation de tableau tel que key ( ),
reset ( ) ou encore hack pour récupérer la première ou
dernière clé d’un tableau. Pour parvenir au même résultat, le
PHP 7.3 se révèle plus efficient puisque désormais il ne
faut saisir qu’une seule fonction : array_key_first ( )
ou array_key_last ( ).
| Ici on souhaite récupérer la première clé du tableau languages |
Un
choix plus vaste d’algorithmes de hachage de mot de passe …
Comme
nous l’avons pu étudier en cours de PHP, la fonction
password_hash( ) permet de sécuriser un mot de passe en le
transformant de telle façon qu’on puisse le vérifier avec la
fonction password_verify ( ) sans en retrouver sa valeur
d’origine.
Pour
hacher un mot de passe, plusieurs choix d’algorithme
s’offrent au développeur. En effet, chaque algorithme comporte des
spécificités telles que la rapidité d’exécution et le niveau de
sécurité. Par défaut, la constante PASSWORD_DEFAULT permet
de choisir automatiquement l’algorithme recommandé.
En
PHP 7.3, une nouvelle variante fait son apparition, en l’occurrence,
l’algorithme « Argon2 » qui se veut un mix entre « Argon2i » et
« Argon2id » par le biais de la nouvelle constante
PASSWORD_ARGON2ID.
Bien entendu, il est possible de migrer de «Bcrypt » à « Argon2 »
sans problème puisque la fonction password_verify( ) saura faire le
distinguo entre les mots de passes stockés par la fonction Becrypt (
) apparue avec PHP 7.2 de ceux qui le seront dorénavant en « Argon2
».
Lexique
Heredoc:
Syntaxe qui permet de déclarer des chaînes de caractère en PHP et
dont l’identifiant est précédé de l’opérateur <<< .
La syntaxe Heredoc se veut être un moyen d’ajouter une grande
quantité de texte sans avoir besoin d’échapper des caractères
comme les guillemets.
Nowdoc:
Très proche de la syntaxe Heredoc, le Nowdoc s’en distingue par un
identifiant qui est placé entre guillemets simples (<<<’EOT’)
et qu’elle ne comporte aucune analyse.
Référence:
Manière d’accéder au contenu d’une variable en utilisant
différents noms.
Efficience :
Consiste à obtenir un tel résultat tout en mobilisant le minimum de
ressources et moyens possibles quand l’efficacité ne tiens pas de
cet aspect.
Hash :
Consiste à récupérer une donnée qui est fournie (en entrée) de
manière à calculer (à la sortie) une empreinte qui ne permet pas
de retrouver cette première sachant qu’il est impossible de
trouver deux données distinctes à partir d’une même empreinte.
Sources
www.programmez.com
– PHP 7.3 est disponible
www.developpez.com
– PHP 7.3 est disponible en version stable …
www.codedesign.fr
– Nouveautés de PHP 7.3
Article
rédigé par Jocelyn S

Commentaires
Enregistrer un commentaire