php.watch

"
Dev back

PHP 8.6: `array_filter` function's `$mode` throws `ValueError` on invalid values

La version 8.6 de PHP introduit des modifications dans la fonction `array_filter`. Elle inclut un nouveau mode pour spécifier comment les valeurs doivent être passées à la fonction de rappel. Si une valeur non reconnue est fournie, une exception `ValueError` est lancée, améliorant ainsi la gestion des erreurs par rapport aux versions antérieures où de telles valeurs étaient ignorées silencieusement.

"
Dev back

PHP 8.6: New `SortDirection` Enum

La version PHP 8.6 introduit un nouvel Enum appelé `SortDirection`, accessible depuis l'espace de noms global. Cet Enum est un Unit Enum, ce qui signifie que ses éléments n'ont pas de valeur scalaire associée. Les applications PHP peuvent l'utiliser pour valider les directions de tri et en déduire des valeurs spécifiques au domaine. Si une application PHP utilise déjà des Enums, cette nouveauté n'impacte pas la compatibilité antérieure.

"
Dev back

PHP 8.6: New `grapheme_strrev` function

PHP 8.6 introduit la nouvelle fonction `grapheme_strrev`, qui permet d'inverser une chaîne de caractères en unités de graphemes, contrairement à `strrev` qui agit sur les octets. Cette nouvelle fonction est utile pour gérer correctement les caractères multibytes, tels que les emojis, en préservant leur structure. Elle est déclarée dans l'espace de noms global et ne devrait pas affecter la compatibilité ascendante des applications existantes, à moins qu'une fonction du même nom ne soit déjà déclarée. Un polyfill est également possible pour les versions antérieures de PHP.

"
Dev back

PHP 8.6: New `clamp` function

PHP 8.6 introduit une nouvelle fonction `clamp` qui permet de vérifier si une valeur donnée se situe dans des bornes spécifiques. Si la valeur est dans ces bornes, elle est retournée telle quelle, sinon la fonction renvoie la borne la plus proche. La fonction suit des sémantiques similaires à celles d'autres langages de programmation comme C++, C#, Go, Java et Python. Elle gère également des comparaisons de types et des types incompatibles, tout en restant compatible avec les versions PHP antérieures.

"
Dev back

PHP 8.6: JSON: `json_decode` error/exception message now indicates the location of the error

Avec PHP 8.6, les fonctions de gestion des erreurs JSON telles que 'json_decode' incluent désormais la ligne et la position de l'erreur dans le message d'erreur ou d'exception, permettant ainsi de mieux identifier l'emplacement exact des échecs de décodeur JSON. Cela améliore le débogage comparé aux versions précédentes qui ne spécifiaient pas l'emplacement de l'erreur. Cependant, cette fonctionnalité n'est pas rétrocompatible avec les anciennes versions de PHP.

"
Dev back

PHP 8.5: Intl: New `IntlListFormatter` class

La nouvelle classe `IntlListFormatter` dans l'extension Intl de PHP 8.5 permet de formater des listes selon la locale, en produisant des listes facilement lisibles avec des structures 'et' et 'ou'. Elle utilise des données de l'ICU pour le formatage et prend en charge différents styles de présentation. Sa construction nécessite une chaîne de locale valide et des options pour définir la largeur du formatage des listes. Elle réduit également la complexité en fonction de la langue choisie, mais peut nécessiter des données CLDR pour une compatibilité étendue.

"
Dev back

PHP 8.4: `#[Deprecated]` attribute

PHP 8.4 introduit un nouvel attribut `#[Deprecated]` permettant de marquer les fonctions, méthodes de classes ou constantes comme obsolètes. Lors de leur utilisation, un message de dépréciation est automatiquement émis. Cela remplace les anciennes méthodes d'annotation et améliore la prise en charge via l'API de réflexion, en retournant le statut de dépréciation des symboles PHP. L'attribut peut être appliqué à divers éléments, avec la possibilité de personnaliser le message de dépréciation.

"
Dev back

PHP 8.5: New `PHP_BUILD_DATE` constant

La version 8.5 de PHP introduit une nouvelle constante nommée `PHP_BUILD_DATE`, qui permet d'accéder directement à la date et à l'heure de compilation du binaire PHP. Auparavant, cette information n'était accessible que via une méthode moins pratique. La nouvelle constante facilite l'accès à ces données au format PHP, sans impact sur la compatibilité avec les versions précédentes, sauf si une constante identique est déclarée dans l'espace de noms global.

"
Dev back

PHP 8.4: Curl: New `CURLOPT_TCP_KEEPCNT` option

La version 8.4 de PHP introduit une nouvelle option dans l'extension Curl, `CURLOPT_TCP_KEEPCNT`, qui permet de définir le nombre maximum de probes TCP keep-alive. Cette option offre une meilleure gestion des connexions TCP et est compatible avec libcurl 8.9.0 ou supérieure, mais ne peut pas être rétro-portée vers les anciennes versions de PHP.

"
Dev back

PHP 8.4: Curl: New `CURLOPT_SERVER_RESPONSE_TIMEOUT` option to replace `CURLOPT_FTP_RESPONSE_TIMEOUT`

La nouvelle option `CURLOPT_SERVER_RESPONSE_TIMEOUT` dans l'extension Curl de PHP 8.4 permet de définir un délai d'attente pour la réponse d'un serveur, applicable à plusieurs protocoles. Bien que cette option soit introduite pour remplacer `CURLOPT_FTP_RESPONSE_TIMEOUT`, la compatibilité avec les versions antérieures est maintenue. Cela a pour but de renforcer l'efficacité et la gestion des délais d'expiration dans les applications PHP utilisant Curl.