Les nouveautés de PHP 8.4
Les nouveautés de PHP 8.4
Dans cet article, je vais vous présenter les principales nouveautés de PHP 8.4.
Au sommaire
- Asymmetric Visibility
- Property Hooks
- New sans les parenthèses
- Parsing HTML 5
- Deprecated Attribute
- Deprecate Implicit Nullability
1.Asymmetric Visibility
-
- Possibilité de déclaré les niveaux de visibilité des getters et setters dans la propriété elle-même.
- Très bonne chose qui va réduire considérablement le nombre de ligne dans nos fichiers.
Quelques petites remarques :
- Celles-ci fonctionneront uniquement sur les propriétés typées.
- La visibilité du set doit être égale ou plus petite que celle du get
Un exemple en image d'avant / après.
2. Les property hooks
Surement l'une des nouveautés les plus attendues, les hooks vont nous permettre de définir directement les getters et setters (ils sont optionnels).
Finis les fichiers avec 500 lignes de fonctions de getters et setters.
Quelques exemples :
3. New sans les parenthèses
Quelques exemples donnés par (Derick Rethans lors du FORUM PHP 2024)
A noté dans l'exemple que l'appel à une fonction invoke donnera quelque chose d'étrange :
new MyClass()()
4. Parsing HTML 5
Dans PHP 8.4, on aura une nouvelle class de disponible pour lire / parser l'HTML 5.
$html = \Dom\HTMLDocument::createFromString($contents);
5. Nouvel attribut de déprécation (Deprecated Attribute)
Ajout d'un nouvel attribut qui permettra de gérer ça directement au-dessus des fonctions plutôt que dedans avec des exceptions ou autres.
"since" prenant une string, on peut y mettre une date, ou une version d'application, ou ce que l'on veut.
6. Deprecate implicit nullability
Un des changements auquel il faudra faire pas mal attention dans les applications, c'est la dépréciation des arguments qui peuvent être null.
Il faudra y ajouter le ? ou le |null avant le typage de l'argument
Vous pouvez voir l'ensemble des nouveautés ici :