DEV Community

Lior Chamla
Lior Chamla

Posted on

Mes fonctionnalités préférées de PHP 7.4

✨ PHP 7.4 apporte de vraies nouveautés !

On parle évidemment beaucoup de la version 8 de PHP qui ne devrait plus tarder maintenant. Mais avant d'étudier les nouveautés qui vont être apportées sur cette future version majeure, savez vous quelles sont les nouveautés qui ont été apportées par PHP 7.4 et que vous pouvez utiliser dès aujourd'hui ?

▶ Voici les deux fonctionnalités que je préfère et que j'utilise tous les jours avec mes étudiants !

Les propriétés typées dans les classes

Auparavant, les propriétés des classes ne pouvaient pas être typées, une propriété publique pouvait donc se voir assigner un type qu'on ne souhaitait pas :

<?php

class MaClasse {
  public $age;
}

$obj = new MaClasse();

// Aucune erreur, tout va bien !
$obj->age = "Hello World !"; 

Depuis la sorti de PHP 7.4, on peut maintenant typer les propriétés de nos classes afin de s'assurer que jamais on ne pourra y stocker une valeur que l'on ne souhaite pas stocker :

<?php

class MaClasse {
  public int $age;
}

$obj = new MaClasse();

// Erreur : tu ne peux pas assigner
// une string à MaClasse::$age qui doit
// être un int !
$obj->age = "Hello World !"; 

Ca n'a peut être l'air de rien comme ça mais c'est une vraie révolution dans notre façon d'éviter les bugs et d'avoir une meilleur expérience développeur (DX) 👌

Les fonctions flèchées

On les connait déjà très bien en Javascript : les fonctions fléchées permettent d'écrire des fonctions anonymes en une seule ligne. Et ce n'est pas qu'une question d'élégance du code, ça va plus loin 😉

Un exemple des problèmes qu'on rencontrait avant la 7.4

<?php

$nombres = [1, 2, 3, 4];
$multiplicateur = 2;

// Erreur ! En PHP, on ne peut pas accéder
// à une variable déclarée en dehors d'une
// fonction !
$transformation = array_map(
  function(int $n) {
    return $n * $multiplicateur;
  },
  $nombres
);

// Correct ! Grâce au mot clé "use", on indique
// à PHP que la variable $multiplicateur
// déclarée à l'extérieur de la fonction 
// peut être utilisée dans la fonction !
$transformation = array_map(
  function(int $n) use ($multiplicateur) {
    return $n * $multiplicateur;
  },
  $nombres
);

// résultat
// $transformation => [2, 4, 6, 8]

Voyons maintenant ce que nous apporte la nouvelle possibilité d'écrire des fonctions fléchées :

<?php

$nombres = [1, 2, 3, 4];
$multiplicateur = 2;

$transformation = array_map(
  // Non seulement la fonction ne prend plus
  // qu'une seule ligne, mais remarquez :
  // elle connait la variable $multiplicateur
  // sans avoir à lui préciser !
  fn(int $n) => $n * $multiplicateur,
  $nombres
);

// résultat
// $transformation => [2, 4, 6, 8]

En savoir plus sur les changements apportés par PHP 7.4

Si vous souhaitez en savoir plus sur tout ce que PHP 7.4 a apporté, vous pouvez consulter la documentation officielle de PHP, et pourquoi pas se faire tout expliquer sur un plateau par Damien Seguy qui avait abordé l'ensemble des changements au forum PHP de l'AFUP en 2019 🔽🔽🔽

Retrouvez moi 🚀

Top comments (0)