Il ya quelques jours la nouvelle a été publiée que la première version alpha de la nouvelle branche du langage de programmation PHP 8.3, Des améliorations prévues ont été révélées, telles que la nouvelle fonction json_validate(), ainsi que des ajouts à la classe Randomizer récemment ajoutée, la détection de débordement de pile, etc.
Pour ceux d’entre vous qui ne connaissent pas PHP (acronyme récursif PHP : Hypertext Preprocessor), laissez-moi vous dire qu’il s’agit d’un langage de programmation assez populaire, open source, interprété côté serveur et à usage général, particulièrement adapté au développement Web. , car il peut être intégré dans HTML.
Quelles sont les principales innovations introduites par PHP 8.3 ?
Avec la sortie de cette version de PHP 8.3 pour les tests Alpha 1 Parmi les fonctionnalités prévues pour sa mise en œuvre, par exemple, la Fonction json_validate() pour vérifier rapidement si une chaîne est au format JSON sans effectuer d’opérations de décodage, car auparavant une chaîne JSON consistait en un format de données spécifié et si vous aviez besoin de la validation d’une chaîne JSON, vous aviez besoin de la fonction json_decode().
Un autre des changements qui ressort sont les améliorations dans la gestion des erreurs, ainsi que dans la détection de débordement de pile avec les deux nouvelles directives zend.max_allowed_stack_size et zend.reserved_stack_size qui ont été ajoutés au fichier ini pour définir la taille de tas maximale autorisée et réservée. Il est mentionné que l’avantage de cette fonctionnalité est que les défauts de segmentation induits par le débordement de pile ne généreront plus de défauts de segmentation, ce qui facilite grandement le débogage.
A propos de l’opération, il est mentionné que le programme plantera lorsqu’il approchera de l’épuisement de la pile, lorsque la pile se remplira plus que la différence entre les valeurs de zend.max_allowed_stack_size et zend.reserved_stack_size (L’exécution s’arrêtera sans amener la situation à une erreur de segmentation.) Par défaut, la valeur de zend.max_allowed_stack_size est mis à 0 (0 : la taille est déterminée automatiquement, vous pouvez mettre -1 pour désactiver la limite).
En plus de cela, il est également souligné queDe nouvelles méthodes ont été ajoutées à la classe Randomizer, qui fournit une API de haut niveau pour générer des nombres et des séquences pseudo-aléatoires. dans cette mise à jour Quelques petits ajouts sont intégrés : getBytesFromString pour générer une chaîne d’une taille donnée utiliser des caractères aléatoires présents dans une autre chaîne ; getFloat et nextFloat pour générer un nombre à virgule flottante aléatoire dans la plage spécifiée.
Il met également en évidence la amélioration de la gestion des exceptions de date/heure, car auparavant, PHP se limitait à émettre un avertissement ou une erreur en cas de problème dans la gestion des dates et des heures, mais maintenant, ajout d’une génération d’exception séparée DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError en cas de problèmes dans les opérations de date et d’heure.
Parmi les autres changements qui se démarquent :
- Ajout de la possibilité d’extraire des constantes à l’aide de la syntaxe de classe dynamique.
- la fonction a été ajoutée getBytesFromString() peut être utilisé pour générer une chaîne de la longueur souhaitée à partir des octets d’une chaîne choisie au hasard
- Amélioration de la gestion des erreurs qui se produisent lors de l’analyse des données sérialisées dans la fonction désérialiser(). En cas de problème, désérialiser() va maintenant revenir E_AVERTISSEMENT au lieu de E_AVIS.
- Ajoutée getfloat() qui renvoie un flottant entre $min et $max
- la fonction a été ajoutée prochainfloat().
- Ajout de nouvelles fonctions POSIX posix_sysconf(), posix_pathconf(), posix_fpathconf() et posix_eaccess().
- Lors de l’utilisation de FFI, les fonctions C qui ont un type de retour void renvoient désormais null au lieu de renvoyer FFI\CData:void
posix_getrlimit() prend désormais un paramètre optionnel $res pour permettre d’obtenir une seule limite de ressource. - gc_status() a quatre nouveaux champs : en cours d’exécution, protégé, entièrement buffer_size.
- alias_classe() prend désormais en charge la création d’un alias d’une classe interne.
- mysqli_poll() lève maintenant ValueError lorsque des arguments de lecture ou d’erreur sont passés.
- array_pad() maintenant vous n’êtes limité que par le nombre maximum d’éléments qu’un tableau peut avoir. Auparavant, il n’était possible d’ajouter qu’un maximum de 1048576 éléments à la fois.
- Nouvelles fonctions posix : posix_sysconf(), posix_pathconf(), posix_fpathconf() et posix_eaccess()
- Exécuter proc_get_status() plusieurs fois retournera désormais toujours la valeur correcte sur les systèmes posix.
Finalement Si vous êtes intéressé à en savoir plus à ce sujetvous pouvez vérifier les détails dans le lien suivant.
Il est à noter que la sortie de la version stable de PHP 8.3 est prévue pour le 23 novembre.