Polar Code 🎭

Command Palette

Search for a command to run...

PHP 8.5 — Une évolution majeure pour la lisibilité, la performance et l’ergonomie développeur
php
php8.5

PHP 8.5 — Une évolution majeure pour la lisibilité, la performance et l’ergonomie développeur

11 janvier 2026

PHP 8.5, publié le 20 novembre 2025, apporte des fonctionnalités essentielles qui améliorent la lisibilité, la sécurité et l’ergonomie du langage. Avec l’arrivée du pipe operator `|>` pour des pipelines clairs, une extension URI native conforme aux standards, la syntaxe améliorée pour cloner des objets et des fonctions utilitaires modernes, cette version marque une étape importante dans l’évolution de PHP

Le 20 novembre 2025, la version PHP 8.5 a été officiellement publiée par la PHP Foundation. Cette version ne révolutionne pas le langage, mais introduit un ensemble de fonctionnalités significatives qui améliorent la lisibilité du code, la sécurité, la productivité et l’expérience développeur. (PHP)

PHP 8.5 s’inscrit dans la continuité des versions 8.x, tout en apportant des constructions modernes, des extensions natives, ainsi que des améliorations ergonomiques notables. (PHP)


🚀 Principales nouveautés de PHP 8.5

🟢 1. L’opérateur Pipe (|>)

PHP 8.5 introduit enfin le pipe operator, représenté par |>, permettant de chaîner des transformations de gauche à droite en passant la sortie d’une étape comme entrée de la suivante. (PHP)

📌 Concept

L’idée est de rendre les pipelines de transformations plus lisibles qu’avec des appels imbriqués ou des variables temporaires.

À la place de :

<?php
$slug = strtolower(
    str_replace('.', '',
        str_replace(' ', '-',
            trim($title)
        )
    )
);

PHP 8.5 permet d’écrire :

<?php
$title = ' PHP 8.5 Released ';

$slug = $title
    |> trim(...)
    |> (fn ($str) => str_replace(' ', '-', $str))
    |> (fn ($str) => str_replace('.', '', $str))
    |> strtolower(...);

var_dump($slug);

👉 Chaque étape reçoit la valeur traitée par l’étape précédente et la transmet à la suivante, ce qui rend l’ordre d’exécution plus facile à lire de haut en bas. (PHP)

📌 Important — Sur le plan technique :

  • Le pipe operator injecte la valeur de gauche comme premier argument de la fonction ou du callable à droite.
  • Lorsqu’une fonction possède une signature où la valeur doit être à une autre position, on utilise une closure explicite (comme ci-dessus) pour contrôler l’ordre des paramètres. (PHP)

📌 2. Extension URI native

PHP 8.5 ajoute une extension URI totalement intégrée, conforme aux standards RFC 3986 et WHATWG URL pour le parsing, la normalisation et la manipulation des URI/URL. Cela remplace progressivement l’usage de parse_url(), qui était limité et source de bugs subtils. (PHP)

Exemple d’usage :

<?php
use Uri\Rfc3986\Uri;

$uri = new Uri('https://example.com/path?query=value');
echo $uri->getHost();  // example.com
echo $uri->getQuery(); // query=value

👉 L’extension fournit une API robuste et standardisée pour travailler avec les composants URI. (PHP)


🟢 3. Clone With — Cloner avec modifications

PHP 8.5 introduit une nouvelle syntaxe pour cloner un objet tout en modifiant certaines propriétés dans la même instruction. Cela simplifie grandement le pattern dit with-er, notamment pour les classes readonly. (PHP)

Exemple :

<?php
readonly class Color {
    public function __construct(
        public int $red,
        public int $green,
        public int $blue,
        public int $alpha = 255,
    ) {}
}

$blue = new Color(79, 91, 147);
$transparentBlue = clone($blue, [
    'alpha' => 128,
]);

👉 Plus besoin d’usines à objets complexes pour créer une variante modifiée. (PHP)


🟢 4. Attribut #[\NoDiscard]

Une nouvelle annotation #[\NoDiscard] permet d’indiquer que le retour d’une fonction est important et doit être utilisé. Si ce n’est pas le cas, PHP émettra un avertissement. Cela réduit les erreurs où un retour essentiel est ignoré. (PHP)


🟢 5. Closures et callables dans les expressions constantes

PHP 8.5 autorise désormais les closures statiques et les first-class callables dans les expressions constantes (attributs, valeurs par défaut, constantes), ouvrant de nouvelles possibilités métaprogrammatiques. (PHP)


🟢 6. Fonctions utilitaires

PHP 8.5 introduit de nouvelles fonctions pratiques, notamment :

  • array_first() et array_last() — pour récupérer facilement la première ou la dernière valeur d’un tableau (retourne null si vide). (PHP)
  • get_error_handler() / get_exception_handler() — pour obtenir les handlers actuellement en place. (PHP)
  • grapheme_levenshtein() — pour comparer des strings Unicode sensibles aux graphemes. (PHP)

🟢 7. Diverses améliorations internes

PHP 8.5 apporte aussi :

  • Backtraces automatiques sur erreurs fatales, facilitant le debug. (PHP)
  • Support d’attributs sur constantes, traits et propriétés. (PHP)
  • Visibilité asymétrique pour les propriétés statiques. (PHP)
  • Nouveaux DOM helpers et options CLI. (PHP)

⚠️ Dépréciations et compatibilité

Certaines fonctionnalités sont désormais dépréciées, avec pour objectif d’éliminer progressivement les comportements dangereux ou confus :

  • L’opérateur backtick comme alias de shell_exec(). (PHP)
  • Les noms de type cast non canoniques (boolean), (integer), etc. (PHP)
  • La directive INI disable_classes a été supprimée. (PHP)
  • Utiliser null comme clé de tableau ou dans array_key_exists() est maintenant déprécié. (PHP)
  • Les méthodes magiques __sleep() et __wakeup() sont soft dépréciées au profit de __serialize()/__unserialize(). (PHP)

🧠 Démystifier le pipe operator

L’opérateur |> en PHP 8.5 n’est pas une magie fonctionnelle, mais :

  • un sucre syntaxique qui passe la valeur de gauche comme premier argument à la fonction/callable à droite,
  • conçu pour créer des pipelines linéaires sans imbrication excessive,
  • utile pour améliorer la lisibilité, surtout sur des chaînes de transformations. (PHP)

Ce comportement implique que, si une fonction attend la valeur à une autre position, on doit l’envelopper dans une closure explicite comme montré ci-dessus. (PHP)


📈 Conclusion

PHP 8.5, publié le 20 novembre 2025, est une version qui améliore significativement la qualité du code, la sécurité d’API, la productivité et la lisibilité, tout en ajoutant des outils modernes attendus par la communauté. (PHP)

Les ajouts comme le pipe operator, l’extension URI native, la syntaxe clone with, ainsi que les nouvelles fonctions utilitaires et attributs, donnent aux développeurs une boîte à outils plus expressive et plus sûre, adaptée aux besoins de projets modernes. (PHP)

Fin de l'enquête

Merci d'avoir suivi cette actualité technique.