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 hooks | Fort — supprime des couches d'accesseurs |
| Visibilité asymétrique | Fort — entités plus sûres, moins de code |
| new sans parenthèses | Cosmétique mais agréable |
array_find, array_any, array_all | Moyen — lisibilité des recherches |
| JIT amélioré | Faible pour du web I/O-bound |
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.