La nouvelle version de PHP introduit notamment les hooks de propriétés, la visibilité asymétrique pour les propriétés de classe et une nouvelle API DOM HTML5.
Avec les hooks de propriétés, il est possible de définir la logique get et set directement lors de la déclaration de la propriété (similaire à C#), au lieu d’utiliser des méthodes séparées getFoo()/setFoo() ou les méthodes magiques moins pratiques __get/__set. Cela améliore considérablement la flexibilité et la lisibilité du code.
Avant les hooks de propriétés, la logique get et set ressemblait à ceci :
negative) {
return $this->value * -1;
}
return $this->value;
}
public function setValue(int $value)
{
$this->value = abs($value);
$this->negative = $value < 0;
}
}
$example = new Intxample();
$example->setValue(-5);
print $example->getValue(); // Output: -5
En comparaison, voici la nouvelle syntaxe :
negative) {
return $this->value * -1;
}
return $this->value;
}
set(int $value) {
$this->value = abs($value);
$this->negative = $value < 0;
}
}
}
$example = new Intxample();
$example->value = -5;
print $example->value; // Output: -5
Reste à voir si cela apporte réellement un si grand avantage pour les développeurs. À mon avis, cela rend le bloc de variables au début d’une classe bien moins lisible. C’est sans doute une question de goût.