PHP 8.4 simplifie radicalement l'écriture de classes propres en PHP grâce à des fonctionnalités comme la promotion des propriétés dans le constructeur, les propriétés readonly et la visibilité asymétrique. L'auteur illustre cette évolution avec un exemple concret : une classe ControllerActor passe de 12 lignes (avec propriétés privées, constructeur et getters) à seulement 4 lignes en utilisant ces nouvelles syntaxes, tout en garantissant l'immutabilité des données. Cette approche réduit la verbosité du code et améliore sa sécurité en empêchant les modifications accidentelles.
L'immutabilité des objets, rendue plus accessible par PHP 8.4, offre des avantages majeurs comme la sécurité des threads, l'absence d'effets de bord et une meilleure maintenabilité. Cependant, l'auteur souligne que cette pratique n'est pas universelle : les entités avec un cycle de vie (comme les utilisateurs ou les demandes de dépôt) doivent rester mutables pour des raisons de performance et de cohérence. Les collections dynamiques ou les objets hydratés par des ORM comme Doctrine nécessitent également une approche différente.
Enfin, l'article met en garde contre les pièges courants, notamment avec des outils comme Symfony Forms ou EasyAdmin, qui peuvent ne pas être compatibles avec ces nouvelles fonctionnalités. En adoptant l'immutabilité de manière ciblée (pour les objets de valeur ou les événements), les développeurs gagnent en fiabilité et en clarté, tout en évitant les régressions liées aux modifications implicites de données.
La page présente PHP 8.3 comme une évolution du langage axée sur un typage plus strict et une plus grande cohérence, avec des constantes de classe désormais typables pour éviter des erreurs subtiles et profiter immédiatement des vérifications statiques, une nouvelle fonction json_validate() qui allège la validation JSON, l’attribut #[Override] pour garantir qu’une méthode surcharge bien une méthode parente, l’accès dynamique aux constantes et une meilleure gestion du clonage avec les propriétés readonly, améliorations qui renforcent la sûreté du code et contribuent à de meilleures performances sans bouleverser la syntaxe historique de PHP.
PHP 8.2, sorti en décembre 2022, renforce le typage, élimine des comportements hérités problématiques et modernise des API vieillissantes. Les principales nouveautés incluent la généralisation des classes readonly, permettant de déclarer une classe entière en lecture seule, simplifiant ainsi la création d'objets immuables. Le système de types est également enrichi avec les types DNF, combinant unions et intersections, et l'introduction de true, false et null comme types autonomes pour une meilleure précision dans la documentation des fonctions. Ces évolutions visent à rendre le code plus moderne et performant.
PHP 8.1 apporte des améliorations significatives pour rendre le code plus sûr et élégant. Parmi les nouveautés, les enums natifs permettent des vérifications de type robustes et des fonctionnalités avancées comme des méthodes et de la logique métier. Les propriétés readonly simplifient l'immutabilité en permettant une assignation unique dans le constructeur, combinée à la promotion de propriétés pour un code concis. Ces évolutions illustrent l'affinement continu du langage.