Développement PHP moderne : meilleures pratiques d'aujourd'hui

DEV - 04/01
PHP a considérablement évolué ces dernières années. PHP 8.x apporte des fonctionnalités puissantes qui permettent d'être plus propres,...

PHP a considérablement évolué ces dernières années. PHP 8.x apporte des fonctionnalités puissantes qui permettent un code plus propre et plus performant. Ce guide couvre les pratiques PHP modernes que tout développeur devrait connaître.

Fonctionnalités PHP 8.3, 8.4 et 8.5 que vous devez utiliser

Crochets de propriété (PHP 8.4)

?php class User { public string $name { // Custom getter logic get =trim($this->name ?? ''); // Ensemble logique de définition personnalisé { if (strlen(value) < 3) { throw new InvalidArgumentException('Name trop court'); } $this->name = valeur ; } } } $user = nouvel utilisateur(); $utilisateur->nom = 'Jean'; // Setter coupe et valide echo $user->name; // 'John'
Entrer en mode plein écran Quitter le mode plein écran

Visibilité asymétrique (PHP 8.4)

?php class Product { public readonly string $id; // Public read, private set public function __construct(string $id) { $this-identifiant = $id; // Autorisé dans la portée de la classe } } $product = new Product('abc123'); echo $produit->id; // 'abc123' // $produit->id = 'xyz'; // Erreur : Impossible de modifier la propriété en lecture seule
Entrer en mode plein écran Quitter le mode plein écran

Opérateur de canalisations (PHP 8.5)

?php $result = $input |trim(?) |> strtolower(?) |> ucwords(?) |> str_replace(' ', '-', ?); // Équivalent à : // $result = str_replace(' ', '-', ucwords(strtolower(trim($input))));
Entrer en mode plein écran Quitter le mode plein écran

Promotion immobilière constructeur

?php // Before PHP 8.0 class Product { private string $name; private float $price; private int $stock; public function __construct(string $name, float $price, int $stock) { $this-nom = $nom ; $ce->prix = $prix ; $this->stock = $stock ; } } // PHP 8.0+ - Beaucoup plus propre ! class Product { public function __construct (private string $name, private float $price, private int $stock = 0, ) {} }
Entrer en mode plein écran Quitter le mode plein écran

La promotion de la propriété des constructeurs réduit considérablement le passe-partout. Combinez avec readonly pour les objets à valeur immuabl...
[Courte citation de 8% de l'article original]

Loading...