L'image montre le texte "php" en minuscules avec une police moderne et audacieuse, mettant en évidence PHP 8.5. Le dégradé passe du rose à l'orange puis au bleu sur un fond bleu foncé, créant un effet vibrant et lumineux.

Installer PHP 8.5 sous Ubuntu Server

PHP 8.5 est sorti le 20 novembre 2025. Cette version continue la dynamique de PHP 8.x : plus de productivité, meilleure DX et un langage qui vous pousse vers les bonnes pratiques sans casser tout votre code.

Dans cet article, on passe en revue les nouveautés majeures, les changements subtils (mais importants) et ce que vous devez vérifier avant de passer votre stack en 8.5.

PHP 8.5 en un coup d’œil

En bref, PHP 8.5 apporte :

  • L’opérateur pipe |> pour chaîner les appels de manière lisible.
  • Une nouvelle extension URI native pour parser et manipuler les URLs proprement.
  • clone() amélioré avec un paramètre pour modifier des propriétés pendant le clonage.
  • L’attribut #[\NoDiscard] pour signaler les retours à ne pas ignorer.
  • Closures et first-class callables utilisables dans les expressions constantes.
  • Nouvelles fonctions utilitaires comme array_first(), array_last(), get_error_handler(), get_exception_handler().
  • OPcache obligatoire, intégré au binaire PHP.
  • Stack trace sur les erreurs fatales et nouvelles options de debug.
  • Une salve de dépréciations ciblées (backticks, casts non canoniques, etc.).

L’opérateur pipe |> : fini la salade d’appels imbriqués

C’est la star de PHP 8.5. L’opérateur pipe permet de chaîner des appels de fonctions en lisant le flux de gauche à droite.

Avant : du code illisible

<?php

$title = ' PHP 8.5 Released ';

$slug = strtolower(
    str_replace('.', '',
        str_replace(' ', '-',
            trim($title)
        )
    )
);Langage du code : PHP (php)

Maintenant : des pipelines explicites

<?php

$title = ' PHP 8.5 Released ';

$slug = $title
    |> trim(...)
    |> (fn (string $str): string => str_replace(' ', '-', $str))
    |> (fn (string $str): string => str_replace('.', '', $str))
    |> strtolower(...);Langage du code : HTML, XML (xml)

Quelques points clés :

  • La valeur de gauche est passée implicitement comme premier argument des callables de droite.
  • Vous pouvez utiliser des fonctions, des closures, des first-class callables ($obj->method(...), Class::staticMethod(...)).
  • Le pipe ne remplace pas tout, mais il rend les transformations successives nettement plus lisibles, surtout combiné avec les fonctions pures.

En pratique, vous allez l’adorer pour :

  • Le nettoyage de données (normalisation d’input, trimming, filtering).
  • Les pipelines sur des collections (combiner array_map, array_filter, array_values, etc.).
  • Les transformations de chaînes et les générateurs.

clone() évolue : le « clone with » version PHP

PHP 8.5 introduit un clone() amélioré, capable de cloner un objet et de modifier certaines propriétés en une seule opération.

Avant, pour un objet readonly, il fallait bricoler :

<?php

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

    public function withAlpha(int $alpha): self {
        $values = get_object_vars($this);
        $values['alpha'] = $alpha;

        return new self(...$values);
    }
}

$blue = new Color(79, 91, 147);
$transparentBlue = $blue->withAlpha(128);Langage du code : HTML, XML (xml)

Avec PHP 8.5, clone() accepte désormais un second argument $withProperties :

<?php

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

    public function withAlpha(int $alpha): self {
        return clone($this, [
            'alpha' => $alpha,
        ]);
    }
}

$blue            = new Color(79, 91, 147);
$transparentBlue = $blue->withAlpha(128);Langage du code : HTML, XML (xml)

Ce que ça change pour vous :

  • Le pattern with-er devient trivial, même avec des propriétés readonly.
  • Vous réduisez le boilerplate autour de l’immutabilité.
  • Les objets de configuration, DTO et value objects deviennent plus agréables à manipuler.

Lire la suite

Radiohead – All I Need (Microcosmos)

Radiohead’s « All I Need », mixed with a scene from Microcosmos (1996). The sensual pace and delicate melody of the song reminded me of a world much smaller than ours, with all the love and violence we experience.

Une fenêtre de terminal stylisée avec une barre de titre bleue affiche "> /WP-CLI" en grande police blanche sur fond sombre, représentant la migration de WordPress vers un nouveau serveur à l'aide de l'outil de ligne de commande WP-CLI.

Migrer WordPress vers un nouveau serveur avec WP-CLI et rsync

Migrer un site WordPress vers un nouveau serveur n’a pas besoin de ressembler à une opération à cœur ouvert pratiquée dans le noir. Avec WP-CLI, rsync et une méthode claire, vous pouvez déplacer un site proprement, vérifier chaque étape, puis basculer le DNS sans croiser les doigts trop fort.

Ce guide montre comment migrer WordPress vers un nouveau serveur avec WP-CLI : export de la base, transfert des fichiers, import SQL, remplacement des URLs, permissions, HTTPS, caches, emails, cron et vérifications finales.

L’objectif est simple : éviter les plugins de migration lourds, garder le contrôle technique, et pouvoir revenir en arrière si quelque chose coince.

Lire la suite