PHP 8.3

PHP 8.3


PHP 8.3 est une version mineure apportant quelques fonctionnalités utiles et une dépréciation impactante.

source : https://php.watch/articles/8.3

> Nouvelles fonctionnalités :


- Améliorations des types du système :

PHP 8.3 supportent la déclaration d'un type pour les constantes des classes PHP. Permet assurer la compatibilité de type des constantes lorsque les classes enfants et les implémentations d'interface les surchargent. Les constantes de classes, de traits, d'interfaces et d'enums peuvent déclarer un type après le mot clé const :
type de constante

- Ajout de la fonction json_validate :

PHP 8.3 ajoute une nouvelle fonction nommée json_validate qui retourne vrai ou faux si la chaîne donnée est une chaîne JSON valide.
Avant PHP 8.3, la seule façon de déterminer si une chaîne donnée est une chaîne JSON valide était d'essayer de la décoder, et de voir si des erreurs étaient émises.
La nouvelle fonction json_validate utilise le même parseur JSON que PHP, mais consomme moins de mémoire et de traitement, car json_decode analyse seulement la chaîne sans construire de valeur décodée.
A utiliser lorsque la probabilité d'un JSON invalide est relativement élevée, car l'utilisation classique d'une levé d'exception via le paramétrage JSON_THROW_ON_ERROR serait suffisant lors d'une erreur liée à JSON.

- Nouvel attribue #[\Override] :

PHP 8.3 apporte un nouvel attribut nommé #[\Override] qui peut être ajouté aux méthodes de classe. Lorsque l'attribut #[\Override] est ajouté à une méthode de classe, PHP s'assure que la méthode de classe ciblée doit surcharger ou implémenter une méthode parent/interface.
Override attribute
Les sous-classes et les classes qui mettent en œuvre une méthode peuvent utiliser cet attribut, qui permet d'éviter les fautes d'orthographe dans le nom des méthodes et de supprimer des méthodes de la classe ou de l'interface parente.


> Dépréciation en PHP 8.3 :

- les appels aux fonctions get_class() et get_parent_class() sans arguments sont dépréciés :

Certaines fonctions ou méthodes de classe en PHP supportent plus d'une signature, car historiquement, au fur et à mesure des versions une même fonction ou méthodes pouvaient avoir plusieurs jeu de paramètres.
Les fonctions get_class et get_parent_class sont quelques-unes des fonctions qui prennent en charge deux signatures.