PHP 8.4 (novembre 2024) a apporté des nouveautés qui changent vraiment l'écriture de code backend au quotidien, pas juste des notes de version. Le tri de ce qui compte.

Property hooks

Fini les getters/setters triviaux. Une propriété peut porter sa logique :

class Article {
    public string $slug {
        get => $this->slug;
        set => strtolower(trim($value));
    }
}

Moins de boilerplate, et la logique reste sur la propriété au lieu d'être éparpillée.

Visibilité asymétrique

class Post {
    public private(set) string $status = 'draft';
    // lisible partout, modifiable seulement depuis la classe
}

Le pattern « lecture publique, écriture contrôlée » sans getter dédié. Ça remplace une grande partie des accesseurs défensifs.

Chaînage sans parenthèses

// Avant : (new Service())->run()
// 8.4 :
new Service()->run();

Ce qui compte vraiment

NouveautéImpact backend
Property hooksFort — supprime des couches d'accesseurs
Visibilité asymétriqueFort — entités plus sûres, moins de code
new sans parenthèsesCosmétique mais agréable
array_find, array_any, array_allMoyen — lisibilité des recherches
JIT amélioréFaible pour du web I/O-bound
Le JIT fait du bruit mais sur du backend web classique (I/O-bound), le gain réel est marginal. Les property hooks, eux, changent le style de code.

Migration

8.3 → 8.4 est une montée mineure côté ruptures : peu de breaking changes, surtout des dépréciations (implicitly nullable params, déjà à corriger). L'intérêt n'est pas la compatibilité mais l'opportunité de simplifier les entités existantes avec les hooks et la visibilité asymétrique — un refactor à faire au fil de l'eau, pas en big bang.