PHP 8.4 est sorti : aperçu des principales nouveautés et améliorations

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

La nouvelle version PHP 8.4 est sortie : ce qui a changé et pourquoi se mettre à jour



La communauté des développeurs a accueilli la version tant attendue de PHP 8.4. Cette version apporte non seulement des améliorations ponctuelles, mais aussi plusieurs changements syntaxiques fondamentaux qui modifient l'approche de l'écriture de code. Si vous suivez l'écosystème du développement web, cette version est une étape importante. Analysons les principales nouveautés.



Property Hooks : une concision tant attendue



L'une des nouveautés les plus discutées — les property hooks (hooks de propriétés). Auparavant, pour ajouter de la logique lors de l'obtention ou de la définition de la valeur d'une propriété, il fallait écrire des getters et des setters (méthodes). Désormais, cela peut être fait directement dans la déclaration de la propriété, ce qui réduit le code passe-partout.



  • Exemple : Au lieu des méthodes getFullName() et setFullName(), vous écrivez public string $fullName { get => ...; set => ...; }.
  • Avantage : Le code devient plus lisible et se rapproche des langages modernes (Kotlin, C#).
  • Flexibilité : Il est possible de redéfinir les hooks dans les classes enfants, ce qui simplifie le travail avec l'héritage.


Visibilité asymétrique (Asymmetric Visibility)



Une autre innovation importante — la possibilité de définir différents niveaux d'accès pour la lecture et l'écriture d'une propriété. Auparavant, cela nécessitait des solutions de contournement ou des méthodes séparées.



  • Syntaxe : public private(set) string $name; — la propriété peut être lue de n'importe où, mais modifiée uniquement à l'intérieur de la classe.
  • Application : Idéal pour les value objects et les DTO, où il est important de protéger les données contre les modifications externes, tout en les laissant accessibles en lecture.


Améliorations des types et des performances



Les développeurs de PHP continuent de renforcer le système de types et d'optimiser le moteur.



  • Nouveaux types : Ajout du support de EXIT comme type pour les fonctions qui interrompent l'exécution (exit, die). Cela améliore la précision de l'analyse statique.
  • JIT (Just-In-Time Compiler) : Considérablement amélioré. Dans PHP 8.4, le JIT est devenu plus intelligent : il optimise mieux les boucles « lourdes » et les opérations mathématiques, ce qui donne un gain de performance dans les benchmarks allant jusqu'à 10-15 %.
  • Garbage Collector : Le mécanisme de ramasse-miettes a été retravaillé. Le nouvel algorithme traite plus efficacement les références cycliques, réduisant la consommation de mémoire dans les processus de longue durée (par exemple, dans les workers de files d'attente).


Autres changements notables



Outre les innovations majeures, cette version comporte de nombreuses améliorations mineures mais utiles :



  • BC Math : De nouvelles fonctions ont été ajoutées pour travailler avec des nombres de précision arbitraire.
  • curl : Mise à jour du support des protocoles et amélioration de la gestion des erreurs.
  • Deprecations : Certaines fonctions obsolètes (par exemple, mysqli_ping) sont marquées comme dépréciées — préparez-vous à leur suppression dans PHP 9.0.


Faut-il se mettre à jour ?



Si vous utilisez une stack moderne (Laravel, Symfony) — la mise à jour vers PHP 8.4 est recommandée. Les property hooks et la visibilité asymétrique simplifieront considérablement l'écriture de code propre. Pour les anciens projets, vérifiez la compatibilité de vos dépendances, mais dans l'ensemble, la migration depuis PHP 8.3 sera sans

Recommended Libraries