Les nouveautés de PHP 7.4

PHP 7.4 devrait arriver en fin d’année 2019, les informations qui suivent sont donc susceptibles de changer dans les mois à venir, mais elles devraient vous permettre de vous faire une idée des nouveautés apportées par cette nouvelle version de PHP.

Préchargement des fichiers

A l’heure actuelle, si l’on utilise un framework PHP, les fichiers ont besoin d’être chargés et recompilés à chaque requête. Avec PHP 7.4 il sera possible de précharger ces fichiers en mémoire afin qu’ils soient disponibles pour toutes les requêtes suivantes.
Cela apporte un gain de performance notable mais qui a cependant un coût, si la source d’un fichier préchargé est changée, le serveur devra être redémarré pour pouvoir utiliser la version mise à jour. Une option utile pour la production mais dont on se passera sûrement pour le développement.

Propriétés typées

Il sera possible de préciser le type des propriétés d’un objet :

class A
{
    public string $name;
    
    public Foo $foo;
}

Cette fonctionnalité de PHP est confirmée pour la version 7.4.

Amélioration de la variance des types

Il sera désormais possible d’utiliser des types de renvois covariants :

class ParentType {}
class ChildType extends ParentType {}

class A
{
    public function covariantReturnTypes(): ParentType
    { /* … */ }
}

class B extends A
{
    public function covariantReturnTypes(): ChildType
    { /* … */ }
}

Ici on a une classe A dont la fonction covariantReturnTypes renvoie un objet de type ParentType, et une classe B enfant de la classe A dont la fonction renvoie un objet de type ChildType (enfant de ParentType). Il s’agit de covariance car l’enfant renvoie l’enfant et le parent le parent.

De même, on pourra dorénavant utiliser des arguments de fonction contravariants :

class A
{
    public function contraVariantArguments(ChildType $type)
    { /* … */ }
}

class B extends A
{
    public function contraVariantArguments(ParentType $type)
    { /* … */ }
}

Ici la classe B est enfant de A mais elle utilise un paramètre de type ParentType qui est parent de celui utilisé par la classe A. Il s’agit de contravariance.

Interface de fonction étrangère

Les extensions PHP pourront désormais être codées en PHP pure mais demanderont tout de même une bonne connaissance de C pour utiliser cette fonctionnalité avancée.

Opérateur d’assignation coalescente nulle

Un nouvel opérateur fera son apparition nous permettant d’écrire :

$data['date'] ??= new DateTime();

A la place de :

$data['date'] = $data['date'] ?? new DateTime();

Source

stitcher.io

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *