L'extension URI présente dans cette mise à jour est toujours disponible et fournit des API pour analyser et modifier en toute sécurité les URI et les URL sur la base des normes RFC 3986 et WHATWG (Web Hypertext Application Technology Working Group) URL. PHP 8.5 dispose aussi d'un opérateur pipe qui enchaîne des appels de fonction sans passer par des variables intermédiaires. L'opérateur pipe permet de remplacer de nombreux « appels imbriqués » par une chaîne qui peut être lue de l'avant vers l'arrière, plutôt que de l'intérieur vers l'extérieur. De plus, dans la version 8.5, les développeurs peuvent mettre à jour les propriétés pendant le clonage d'objets en passant un tableau associatif à la fonction clone(). Cela permet une prise en charge directe du modèle « with-er » pour les classes en lecture seule. Publiée le 20 novembre, la mise à jour 8.5 de PHP est accessible sur PHP.net.
Les développeurs utilisant PHP 8.5 peuvent également tirer parti d'un attribut #[\NoDiscard]. En ajoutant cet attribut à une fonction, PHP vérifie si la valeur renvoyée est consommée et émet un avertissement si ce n'est pas le cas. Le transtypage (void) associé peut être utilisé pour indiquer qu'une valeur est intentionnellement inutilisée. De plus, dans PHP 8.5, les fermetures statiques ou static closures et les types callables de première classe peuvent désormais être utilisés dans des expressions constantes. Selon les documents de mise à jour, cela inclut les paramètres d'attributs, les valeurs par défaut des propriétés et des paramètres, ainsi que les constantes. PHP 8.5 propose par ailleurs des handles cURL persistants. Contrairement à curl_share_init(), les handles créés par curl_share_init_persistent() ne seront pas détruits à la fin d'une requête PHP. Si un handle de partage persistant avec le même ensemble d'options de partage est trouvé, il sera réutilisé, ce qui évitera une initialisation des handles cURL à chaque fois. Les fonctions array_first() et array_last() dans PHP 8.5, quant à elles, renvoient respectivement la première ou la dernière valeur d'un tableau. Si le tableau est vide, la valeur null est renvoyée, ce qui facilite la composition avec l'opérateur ??.
Les autres fonctionnalités de PHP 8.5 à retenir
- Un attribut #[\DelayedTargetValidation] peut supprimer les erreurs de compilation provenant d'attributs de base et d'extension utilisés sur des cibles non valides ;
- Les erreurs fatales, par exemple le dépassement du temps d'exécution maximal, incluent désormais une backtrace ;
- Les attributs peuvent à présent cibler des constantes ;
- L'attribut #[\Override] peut être appliqué aux propriétés ;
- L'attribut #[\Deprecated] peut être utilisé sur les constantes et les traits ;
- Les propriétés statiques prennent en charge la visibilité asymétrique ;
- Les propriétés peuvent être marquées comme final via la promotion des propriétés du constructeur ;
- L'opérateur backtick comme alias pour shell_exec() a été déprécié.

Commentaire