PHP n’est plus relégué aux oubliettes. Avec la version 8.5, il revient en puissance, avec une syntaxe moderne, des outils pratiques, et des performances affinées. Ce n’est plus votre langage serveur d’autrefois. Vous trouverez toutes les informations reliées à cette article sur le site php.watch.
Temps de lecture estimé : 4 minutes
Nouveautés de PHP 8.5
1. Pipe operator (|>
)
Permet d’enchaîner les fonctions de manière lisible, de gauche à droite, sans variables temporaires :
$result = "Hello"
|> strtoupper(...)
|> htmlentities(...);
2. Fonctions array_first()
et array_last()
Accèdent directement aux premières et dernières valeurs des tableaux. Retourne null
si le tableau est vide.
3. Gestion des erreurs améliorée
Les erreurs fatales sont désormais accompagnées d’un stack trace, activé par défaut via l’option INI fatal_error_backtraces
.
Fatal error: Allowed memory size exhausted in script.php on line 8
Stack trace:
#0 script.php(12): process_large_data()
#1 script.php(20): handle_request()
#2 {main}
4. Nouvelles fonctions pour handlers
get_error_handler()
et get_exception_handler()
permettent de récupérer les handlers actuellement en place.
5. Fonction cURL plus pratique
curl_multi_get_handles()
renvoie tous les handles associés à un multi-handle.
$multiHandle = curl_multi_init();
$ch1 = curl_init('https://api.example.com/users');
$ch2 = curl_init('https://api.example.com/posts');
curl_multi_add_handle($multiHandle, $ch1);
curl_multi_add_handle($multiHandle, $ch2);
// New in PHP 8.5: Get all handles
$handles = curl_multi_get_handles($multiHandle);
// Returns: [$ch1, $ch2]
// Execute and process results
$running = null;
do {
curl_multi_exec($multiHandle, $running);
} while ($running > 0);
foreach ($handles as $handle) {
$response = curl_multi_getcontent($handle);
curl_multi_remove_handle($multiHandle, $handle);
}
6. Internationalisation améliorée
Nouvelles API :
locale_is_right_to_left()
etLocale::isRightToLeft()
détectent les langues écrites de droite à gauche.IntlListFormatter
formate proprement des listes avec séparation locale.
saasykit.com
7. Attribution sur constantes
Permet d’ajouter des attributs (annotations) à des constantes non placées dans une classe. Utilisable avec #[\Deprecated]
.
8. Propriétés final
dans le constructeur (Final property promotion)
Simplifie la déclaration de propriétés immuables directement dans le constructeur.
class User {
public function __construct(
final public readonly string $name
) {}
}
9. Attribut #[\NoDiscard]
Force à utiliser le résultat d’une fonction ou méthode. Sinon, avertissement. Utile pour éviter les oublis critiques.
#[\NoDiscard("as the operation result is important")]
function performOperation(): int {
// Perform some operation
return 1; // 1 for success, 0 for failure
}
// Calling the function without using the return value
// Warning: The return value of function performOperation() is expected to be consumed, as the operation result is important in test.php on line 10
performOperation();
// Calling the function and using the return value
// This will not trigger a warning
$status = performOperation();
10. Fermetures static
en expressions constantes
Autorise les closures statiques dans les constantes, paramètres par défaut ou attributs lors de la compilation.
dev.to
11. Callables de première classe dans les constantes
Les callables sont autorisés dans les expressions constantes (comme strtolower(...)
) : le tout est résolu à la compilation.
Contexte global et calendrier
PHP 8.5 est prévu pour le 20 novembre 2025, après plusieurs alpha, beta, et release candidates.
Cas d’utilisation en production (WordPress)
- La plupart des sites WP tournent encore sur PHP 7.4 ou 8.0+, ce qui pose des enjeux de sécurité et de performance.
- PHP 8.5 n’est pas disruptif. Si vos thèmes et extensions sont à jour, les risques de rupture sont faibles.
- Il est recommandé de tester sur un environnement staging avant mise en prod.
The 215 Guys
Conclusion
PHP 8.5 ne révolutionne pas, mais améliore considérablement le quotidien des développeurs. Syntaxe claire, meilleure détection d’erreurs, outils pratiques. À privilégier si vous êtes déjà en PHP 8.4.
Méta-description (≤ 160 caractères)
PHP 8.5 arrive le 20 nov. 2025 : pipe operator, array_first/last, stack traces, attributs constants. Un vrai gain de lisibilité et debugging.
Mots-clés secondaires
- PHP 8.5
- nouveautés PHP 2025
- pipe operator PHP
- array_first PHP
- debug PHP 8.5
- attributs sur constantes
- WordPress PHP 8.5
Laisser un commentaire