Property hooks
PHP 🟡 MidDéfinition
Blocs get et set attachés directement à une propriété, introduits en PHP 8.4 (21 novembre 2024, RFC adoptée 42 voix contre 2). Ils remplacent les paires getter/setter et permettent des propriétés virtuelles, calculées sans stockage. Une propriété readonly ne peut pas avoir de hooks.
Analogie
Un compteur électrique qui affiche la consommation calculée quand on le regarde, sans stocker le chiffre nulle part.
Exemple de code
class Locale
{
public string $countryCode {
// validation à l'écriture
set (string $v) { $this->countryCode = strtoupper($v); }
}
// propriété virtuelle : aucun stockage
public string $combined {
get => "{$this->lang}_{$this->countryCode}";
}
public function __construct(public string $lang) {}
}
Cas d'usage
Valider ou normaliser une valeur à l'affectation, ou exposer une valeur dérivée comme une simple propriété, lisible par l'IDE et PHPStan.
Anti-pattern
Mettre de la logique lourde (requête SQL, appel réseau) dans un hook get : chaque lecture la déclenche.
Termes liés
Fiche mise à jour le 2026-09-27