PHP, le langage de programmation largement utilisé dans le monde, le 23 novembre dernier a récemment annoncé la sortie de PHP 8.3, la dernière mise à jour annuelle majeure. Cette nouvelle version apporte une série de nouvelles fonctionnalités et améliorations, gardant PHP à jour avec les besoins actuels du développement Web.
Une nouvelle version de PHP est publiée environ tous les 12 mois, la dernière version étant la 8.2 en décembre 2022. Chaque version dispose de deux ans de support actif et d'un an de support de sécurité, donc la 8.0 – publiée le 26 novembre 2020 – ne prendra plus en charge la sécurité. dans quelques jours, bien que les fournisseurs de systèmes d'exploitation puissent avoir leurs propres politiques de support incluant PHP. Il est courant que des versions de PHP qui ne sont plus prises en charge depuis longtemps restent utilisées, et un rapport publié plus tôt cette année indiquait que la majorité des implémentations se trouvaient dans cet état.
Principales nouveautés de PHP 8.3
- Accès dynamique aux constantes de classe: Une nouvelle syntaxe a été introduite qui permet un accès dynamique aux constantes de classe, simplifiant ainsi l'interaction avec elles.
- Gestion améliorée des dates et des heures: Des exceptions plus appropriées ont été implémentées pour la gestion des dates et des heures, rendant le traitement de ces informations plus intuitif et moins sujet aux erreurs.
- Fonction json_validate(): Cette fonctionnalité ajoutée permet la validation des chaînes JSON, une fonctionnalité cruciale à l'ère de l'interopérabilité des données.
- Attribut #[\Override]: implémenté pour tester l'existence d'une méthode dans une classe parent ou une interface implémentée, facilitant la gestion de l'héritage et du polymorphisme.
- Extension Zip mise à jour: De nouvelles méthodes pour définir et obtenir des indicateurs d'archive ont été ajoutées, améliorant ainsi la manipulation des fichiers compressés.
- Prise en charge POSIX étendue: L'ajout de fonctionnalités comme posix_sysconf et posix_eaccess enrichit le support PHP pour les standards POSIX.
- Nouvelles options pour les sockets PHP: L'ajout de ces options étend les possibilités de communication réseau en PHP.
- Classe de randomisation: Introduction de nouvelles fonctionnalités pour la classe Randomizer, améliorant la génération de nombres aléatoires.
- Prise en charge de cURL mise à jour: Prise en charge des nouvelles options et constantes cURL jusqu'à la version 7.87, indispensable pour les requêtes HTTP.
- Nouvelles méthodes DOM: L'ajout de méthodes pour les nœuds et éléments DOM facilite la manipulation du modèle objet de document.
- Arrondi dans number_format(): Vous pouvez désormais arrondir aux chiffres négatifs, ce qui permet une plus grande flexibilité dans le formatage des nombres.
- Prise en charge de zend_call_stack_get sur OpenBSD: Étend la compatibilité PHP avec différents systèmes d'exploitation.
- Linting de plusieurs fichiers: La possibilité de lire plusieurs fichiers à la fois avec l'option php -l.
- Index négatifs dans les tableaux: Ce support offre une nouvelle dynamique dans la gestion des baies.
- Cours anonymes en lecture seule: Introduit une plus grande sécurité et une plus grande encapsulation dans votre code.
- Constantes de classe typées: Vous pouvez désormais déclarer des types pour les constantes de classe, d'interface, de trait et d'énumération.
- Clôtures des méthodes magiques avec des arguments nommés: Cette fonctionnalité rend les fermetures plus polyvalentes et plus puissantes.
- STREAM_NOTIFY_COMPLETED: Une nouvelle notification pour les flux PHP, améliorant la gestion des flux de données.
- Corrections de bugs et autres améliorations: Une série de corrections de bugs et diverses améliorations qui font de PHP 8.3 une version plus stable et performante.
Performances et benchmarks PHP 8.3
D'après les recherches et les benchmarks disponibles, il ressort qu'il n'y a pas de différences significatives en termes de performances entre PHP 8.2 et PHP 8.4. Cela suggère que depuis la version 8.1, PHP semble avoir atteint un plateau en termes de performances. Ce scénario implique que les performances actuelles pourraient rester constantes tout au long de la Branche 8 et au cours des prochaines années, à moins qu'une révision radicale du langage ne soit entreprise. Une telle refonte pourrait viser à surmonter les limitations actuelles et à pousser plus loin les capacités de PHP, élevant ainsi la barre des performances.