PHP 8.4 : Nouveautés, fonctionnalités et améliorations expliquées
Table des matières
Dotée de fonctionnalités et d’améliorations puissantes, la dernière version de PHP 8.4 promet de rendre le codage plus efficace et plus flexible.
Sorti officiellement fin novembre 2024, chez SiteGround, PHP 8.4 existe en version bêta depuis août 2024, lorsque nous avons été parmi les premières entreprises à le rendre disponible pour des tests sur tous nos serveurs.
Sorti officiellement fin novembre 2024, chez SiteGround, PHP 8.4 existe en version bêta depuis août 2024. Nous étions parmi les premières entreprises à la rendre disponible pour des tests sur tous nos serveurs.
Depuis lors, nous avons constaté qu’il devient de plus en plus populaire. Plus de 6000 propriétaires de sites web hébergés par SiteGround l’ont déjà testé sur leur site web.
Si vous vous demandez si vous devez passer à PHP 8.4 et si vous vous interrogez sur les raisons de ce changement, lisez ce qui suit et découvrez tout ce que vous devez savoir sur PHP 8.4, de ses fonctionnalités les plus remarquables à des conseils pratiques sur les personnes qui en bénéficieront le plus.
Points clés à retenir à l’égard de PHP 8.4
PHP 8.4 marque une mise à jour significative dans le cycle de vie de PHP, en introduisant des corrections de bogues, des fonctionnalités et des améliorations qui optimisent les performances et le développement.
Des fonctionnalités telles que la gestion améliorée des propriétés, de nouvelles fonctions auxiliaires et des outils de base de données avancés simplifient le codage et améliorent l’efficacité.
L’utilisation des dernières versions permet également de se protéger contre les vulnérabilités à long terme.
Toutefois, en tant que propriétaire de site web, vous devez être prudent : les dernières versions peuvent ne pas être compatibles avec votre site web. Nous vous recommandons de les tester d’abord sur une copie de test du site web.
Chronologie des versions et SiteGround
PHP 8.4 (Beta 3) a été publié le 15 août 2024. SiteGround a introduit l’accès anticipé le 20 août 2024, afin que nos clients puissent l’utiliser pour des tests dès que possible.
La version de disponibilité générale (GA) de PHP 8.4 a été publiée le 21 novembre 2024. SiteGround a ajouté la version officielle à ses serveurs le 26 novembre 2024, seulement cinq jours après son annonce.
Quoi de neuf dans PHP 8.4 ?
PHP 8.4 introduit de nombreuses nouvelles fonctionnalités qui peuvent être classées en améliorations syntaxiques, améliorations de la bibliothèque et de l’API, et amélioration de la gestion des arrays.
1. Améliorations de la syntaxe et du langage
1.1. Hooks de propriété
Dans les versions de PHP antérieures à la 8.4, la gestion de l’accès et de la modification des propriétés impliquait généralement de définir des méthodes explicites getter/setter au sein d’une classe.
Cette approche, bien que fonctionnelle, conduit souvent à un code plus verbeux et sépare le comportement de la propriété de sa déclaration.
class User {
private string $firstName;
private string $lastName;
public function __construct(string $firstName, string $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
public function getFullName(): string {
return $this->firstName . ' ' . $this->lastName;
}
public function setFullName(string $fullName): void {
[$this->firstName, $this->lastName] = explode(' ', $fullName, 2);
}
}
$user = new User('John', 'Doe');
echo $user->getFullName(); // Outputs: John Doe
$user->setFullName('Jane Smith');
echo $user->getFullName(); // Outputs: Jane Smith
Dans cet exemple, les méthodes getFullName et setFullName sont utilisées pour accéder et modifier le nom complet de l’utilisateur.
Avec l’introduction des hooks de propriété dans PHP 8.4, les développeurs peuvent désormais définir un comportement personnalisé pour l’accès (get) et la modification (set) des propriétés directement dans la déclaration de la propriété.
Cette fonctionnalité simplifie le code en intégrant la logique directement dans la propriété elle-même.
Utilisation des hooks de propriété dans PHP 8.4 :
class User {
private string $firstName;
private string $lastName;
public function __construct(string $firstName, string $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
public string $fullName {
get => $this->firstName . ' ' . $this->lastName;
set {[$this->firstName, $this->lastName] = explode(' ', $value, 2);}
}
}
$user = new User('John', 'Doe');
echo $user->fullName; // Outputs: John Doe
$user->fullName = 'Jane Smith';
echo $user->fullName; // Outputs: Jane Smith
Dans cet exemple actualisé, la propriété fullName utilise les hooks de propriété pour définir les comportements get et set directement dans sa déclaration.
Cette approche réduit le besoin de méthodes séparées et garde la logique de la propriété encapsulée dans sa définition.
Pour une compréhension complète et des exemples supplémentaires, consultez le manuel officiel de PHP sur les hooks de propriété.
1.2. Visibilité asymétrique
Dans PHP 8.4, la visibilité asymétrique permet aux développeurs de définir des niveaux d’accès distincts pour la lecture et l’écriture des propriétés de classe.
![Une capture d'écran d'un extrait de code de la documentation officielle de PHP.net, mettant en évidence la façon dont les nouvelles améliorations de la visibilité asymétrique modifient les pratiques de codage.](https://static-blog.siteground.com/wp-content/uploads/sites/6/2025/02/php-visibilite-asymetrique-1024x521.jpeg)
La déclaration de visibilité public private(set) est utilisée pour autoriser l’accès public en lecture mais restreindre l’accès privé pour la définition de la valeur. Cela permet à la propriété d’être lisible de l’extérieur de la classe, mais modifiable uniquement à l’intérieur de la classe.
1.3. Attribut #[\Deprecated]
Dans PHP 8.4, l’attribut #[\Deprecated] a été introduit pour marquer les classes, méthodes, fonctions ou propriétés comme obsolètes.
Cela sert d’indication formelle que l’élément marqué est déconseillé à l’utilisation et pourrait être supprimé dans les futures versions.
L’utilisation de cet attribut améliore la clarté du code et aide les développeurs à identifier et à se détourner des fonctionnalités obsolètes.
1.4. New MyClass()->method() sans Parenthèses
Dans PHP 8.4, la syntaxe pour invoquer une méthode directement après la création d’une nouvelle instance d’une classe a été améliorée. Auparavant, vous deviez instancier une classe puis appeler une méthode sur cette instance en deux étapes distinctes :
$instance = new MyClass();
$instance->method();
Avec PHP 8.4, vous pouvez désormais enchaîner l’appel de méthode directement à l’instanciation, éliminant ainsi le besoin de parenthèses :
new MyClass->method();
Cette syntaxe simplifiée améliore la lisibilité du code et réduit la verbosité.
2. Améliorations des Bibliothèques et API
2.1. API Objet pour BCMath
Dans PHP 8.4, l’extension BCMath introduit la classe BcMath\Number, offrant une approche orientée objet pour l’arithmétique à précision arbitraire.
![Une capture d'écran d'un extrait de code de la documentation officielle de PHP.net, montrant comment implémenter une approche orientée objet pour l'arithmétique de précision arbitraire en utilisant la nouvelle classe BcMath\Number.](https://static-blog.siteground.com/wp-content/uploads/sites/6/2025/02/objet-API-BCMath-1024x329.jpeg)
Cette amélioration permet un code plus intuitif et lisible lors de l’exécution de calculs décimaux.
2.2. Nouvelles fonctionnalités de ext-dom avec un support HTML5 amélioré
L’extension ext-dom a été améliorée pour fournir un support robuste et conforme aux normes pour l’analyse et la manipulation des documents HTML5.
Cette amélioration résout des problèmes de longue date et introduit de nouvelles fonctionnalités qui facilitent le travail avec le contenu HTML5.
Améliorations clés :
- Introduction de la classe Dom\HTMLDocument :
- Une nouvelle classe, Dom\HTMLDocument, a été ajoutée à l’espace de noms Dom. Cette classe offre une interface moderne et orientée objet pour la gestion des documents HTML5, assurant une meilleure intégration et convivialité.
- Amélioration de l’analyse et de la sérialisation :
- La nouvelle API fournit une analyse et une sérialisation précises des documents HTML5, résolvant les problèmes de conformité antérieurs. Cela garantit que le contenu HTML5 est traité correctement, facilitant une manipulation plus fiable des documents.
- Fonctionnalité améliorée :
- Plusieurs nouvelles fonctions ont été introduites pour simplifier les tâches courantes, telles que l’interrogation d’éléments à l’aide de sélecteurs CSS et la navigation dans le DOM. Ces ajouts facilitent le travail avec les documents HTML5.
2.3. Sous-classes spécifiques aux pilotes PDO
Dans PHP 8.4, l’introduction de sous-classes spécifiques aux pilotes PDO améliore la flexibilité et la fonctionnalité de l’extension PDO (PHP Data Objects). Cette amélioration permet aux développeurs d’accéder à des fonctionnalités de base de données telles que les analyseurs SQL spécifiques aux pilotes, qui étaient auparavant inaccessibles via la classe générique PDO.
Caractéristiques clés :
- Accès aux méthodes spécifiques aux pilotes : Chaque pilote PDO a désormais sa propre sous-classe, permettant l’accès à des méthodes uniques à ce système de base de données. Par exemple, la sous-classe Pdo\Sqlite fournit des méthodes comme createFunction(), qui sont spécifiques à SQLite.
- Amélioration de la clarté du code : En utilisant ces sous-classes, le code devient plus lisible et maintenable, car les fonctionnalités spécifiques à la base de données sont encapsulées dans leurs classes respectives.
// Utilisation de PDO::connect() pour instancier la sous-classe spécifique au pilote
$pdo = PDO::connect('sqlite:/path/to/database.db');
// Utilisation de la méthode spécifique au pilote
$pdo->createFunction('my_function', function($value) {
return strtoupper($value);
});
Dans cet exemple, PDO::connect() renvoie une instance de Pdo\Sqlite, permettant l’accès à des méthodes spécifiques à SQLite comme createFunction().
Compatibilité ascendante :
Cette amélioration maintient la compatibilité ascendante. Le code existant utilisant la classe PDO générique continue de fonctionner comme auparavant. Les développeurs peuvent choisir d’utiliser les sous-classes spécifiques au pilote lorsqu’ils ont besoin d’accéder à des fonctionnalités spécifiques à la base de données.
2.4. Mises à jour de la bibliothèque standard
Au-delà des changements majeurs de la bibliothèque et de l’API, PHP 8.4 affine sa bibliothèque standard avec de nouvelles fonctions utiles et des améliorations discrètes.
Par exemple, les développeurs ont désormais accès à fpow() pour l’exponentiation en virgule flottante, à de nouveaux objets paresseux et à de nouvelles méthodes pour gérer les en-têtes de réponse HTTP.
De plus, la bibliothèque DateTime reçoit des mises à jour précises, améliorant la façon dont PHP gère les tâches liées au temps. Ces mises à jour, bien que mineures, contribuent à une expérience de développement plus fluide et plus efficace.
3. Nouvelles fonctions de support
PHP 8.4 introduit de nouvelles fonctions d’array, offrant des moyens plus polyvalents et efficaces de manipuler les arrays.
- array_find : Il recherche dans un array le premier élément qui satisfait une condition donnée.
- array_find_key : Il trouve la clé du premier élément dans un array qui répond à une condition spécifiée.
- array_any : Il vérifie si un élément dans un array satisfait une condition donnée.
- array_all : Il détermine si tous les éléments d’un array répondent à une condition spécifiée.
$numbers = [1, 2, 3, 4, 5];
// Trouver le premier nombre pair
$firstEven = array_find($numbers, fn($n) => $n % 2 === 0);
echo $firstEven; // Affiche : 2
// Trouver la clé du premier nombre supérieur à 3
$key = array_find_key($numbers, fn($n) => $n > 3);
echo $key; // Affiche : 3
// Vérifier si un nombre est supérieur à 4
$anyGreaterThanFour = array_any($numbers, fn($n) => $n > 4);
var_dump($anyGreaterThanFour); // Affiche : bool(true)
// Vérifier si tous les nombres sont positifs
$allPositive = array_all($numbers, fn($n) => $n > 0);
var_dump($allPositive); // Affiche : bool(true)
Ces ajouts simplifient les opérations sur les arrays, améliorent la clarté du code et réduisent la nécessité de boucles verbeuses.
PHP 8.4 Dépréciations
Avec chaque nouvelle version de PHP, certaines fonctionnalités sont marquées comme dépréciées pour ouvrir la voie à de meilleures alternatives. Les dépréciations aident PHP à évoluer tout en donnant aux développeurs le temps d’ajuster leur code.
Une dépréciation notable dans PHP 8.4 est la suppression des propriétés dynamiques sur les objets standards, une fonctionnalité longtemps utilisée pour l’assignation rapide et ad hoc de propriétés. Un autre exemple est la dépréciation des types implicites nullables.
Les développeurs sont désormais encouragés à utiliser des propriétés typées ou des méthodes magiques comme __get et __set pour de meilleures performances et clarté.
Pour une liste complète des fonctionnalités dépréciées, vous pouvez consulter la documentation officielle publiée par l’équipe de PHP.
1. Changements incompatibles avec les versions antérieures
Il y a une différence entre les dépréciations et les changements incompatibles avec les versions antérieures. À chaque version, il y a aussi des changements qui cassent complètement le fonctionnement de certaines syntaxes et fonctions de code.
Pour une liste complète des mises à jour incompatibles avec les versions antérieures, consultez la documentation officielle de PHP.
Cela signifie que vous devez être particulièrement prudent lors du passage à une version plus récente. Souvent, si vous utilisez un logiciel tiers, vous pouvez rencontrer des problèmes car il faut du temps aux développeurs pour mettre à jour leurs produits afin qu’ils soient compatibles avec la version PHP la plus récente.
C’est pourquoi vous devriez utiliser un environnement de staging pour vérifier si la nouvelle version ne perturbe pas certaines parties de votre site web. C’est particulièrement important si vous utilisez actuellement une version antérieure à 8.0.
Nous vous montrerons comment vous pouvez le faire en toute sécurité en utilisant les outils de SiteGround plus tard dans l’article.
Si vous gérez un site web, c’est le bon moment pour auditer votre code à la recherche de fonctionnalités dépréciées. Traiter ces changements dès maintenant peut vous éviter des soucis lorsque les futures versions de PHP les supprimeront complètement.
Vous pouvez demander une vérification de compatibilité PHP dans le cadre de nos services Expert Care, afin que la révision et la mise à niveau soient prises en charge de manière professionnelle par nos techniciens.
2. Support de la version
PHP 8.4 profitera de support actif pendant deux ans, suivi de deux ans de mises à jour de sécurité critiques. Vous pouvez consulter la documentation officielle de PHP pour connaître les dates exactes.
Si vous utilisez une version obsolète de PHP, nous vous recommandons vivement d’effectuer une mise à jour vers la version stable la plus récente afin d’améliorer la sécurité et les performances.
Comment passer à PHP 8.4 ?
Pour la plupart des utilisateurs, nous recommandons de rester sur PHP géré afin d’éviter toute complication et de ne pas casser votre site web de production. Si vous avez des connaissances techniques et que vous souhaitez tester le fonctionnement de votre site web avec la version 8.4, continuez à lire afin d’apprendre comment le faire en toute sécurité.
1. PHP géré de SiteGround
Par défaut, tous les clients de SiteGround sont configurés sur notre service PHP géré, ce qui signifie que nous mettrons automatiquement à jour votre version de PHP dès qu’une nouvelle version stable sera disponible.
Ceci est recommandé pour la plupart des utilisateurs qui ne sont pas experts en technologie, car les dernières versions peuvent entraîner un conflit dans votre application en raison d’une incompatibilité avec un plugin ou un thème
Nous évaluons soigneusement chaque nouvelle version de PHP et effectuons des tests de compatibilité avec les applications les plus largement utilisées sur notre plateforme. À partir de février 2025, la version par défaut de PHP géré sur les serveurs de SiteGround est 8.2.
Nous recommandons cette version comme étant la plus largement compatible avec la dernière version. Avant de mettre à jour notre version PHP par défaut, nous nous assurons toujours d’avoir suffisamment de données d’utilisation pour garantir la sécurité, la stabilité et les performances de la majorité des sites web sur notre plateforme.
C’est pourquoi nous laissons un certain temps avant de passer notre version par défaut à chaque nouvelle version, même si ces dernières sont disponibles pour des tests sur nos serveurs presque immédiatement après leur sortie.
Les utilisateurs avancés peuvent passer manuellement à PHP 8.4 à tout moment depuis Site Tools.
2. Compatibilité
Comme nous l’avons mentionné, toutes les nouvelles versions de PHP peuvent provoquer des erreurs sur votre site web, il est donc toujours recommandé de tester les versions les plus récentes dans un environnement de staging d’abord.
Nous offrons un outil intuitif, disponible à un clic, qui vous permet de créer facilement un clone de votre site WordPress, que vous pouvez utiliser pour vérifier s’il y a des conflits de plugins ou de thèmes avant de mettre à jour votre site principal.
![Une capture d'écran de la page du tableau de bord de Site Tools de SiteGround, où vous pouvez créer une copie en environnement de staging de votre site WordPress.](https://static-blog.siteground.com/wp-content/uploads/sites/6/2025/02/outil-de-staging-1024x456.jpg)
Une fois que vous avez créé une copie de staging, suivez les étapes ci-dessous si vous souhaitez la passer à PHP 8.4 et tester comment elle fonctionne sur votre site web.
3. Tester PHP 8.4.
La plupart des fournisseurs offrent un outil de gestion PHP pour passer d’une version à l’autre pour votre site web. Pour passer à 8.4 manuellement sur SiteGround, accédez à votre tableau de bord de Site Tools > Devs > PHP manager :
![Une capture d'écran du gestionnaire PHP du tableau de bord de Site Tools de SiteGround, où vous pouvez modifier les paramètres PHP de vos sites web.](https://static-blog.siteground.com/wp-content/uploads/sites/6/2025/02/php-gestionnaire-1024x503.jpeg)
Passez à l’onglet Staging Sites :
![Une capture d'écran du gestionnaire PHP du tableau de bord de Site Tools de SiteGround, où vous pouvez modifier les paramètres PHP d'un site web en environnement de staging.](https://static-blog.siteground.com/wp-content/uploads/sites/6/2025/02/staging-gestionnaire-php-1024x382.jpeg)
Cliquez sur le bouton Modifier sous Actions, passez de PHP managé à Changer la version de PHP manuellement, et sélectionnez 8.4.3.
![Une capture d'écran du menu du tableau de bord Site Tools de SiteGround, où vous changez la version PHP d'un site web, avec un menu déroulant montrant les versions disponibles allant de 8.0 à 8.4.](https://static-blog.siteground.com/wp-content/uploads/sites/6/2025/02/changer-version-php-1024x498.jpeg)
C’est aussi simple que cela ! L’étape suivante consiste à vérifier si le site web fonctionne comme prévu. Si certaines fonctionnalités ne fonctionnent pas, vous devrez enquêter davantage.
Il se peut qu’un plugin ou le thème que vous utilisez ne soit pas encore totalement compatible avec la version la plus récente. Il se peut également que votre site contienne un code PHP personnalisé qui doit être modifié.
Dans de tels cas, il est préférable de rester sur notre version de PHP géré et d’attendre que ces problèmes soient résolus avant de mettre à niveau votre site web principal vers la dernière version de PHP.
4. PHP ultra-rapide
SiteGround est reconnu pour son engagement envers l’optimisation des performances. C’est pourquoi notre équipe a développé une version personnalisée de PHP qui augmente les performances des sites web jusqu’à 30 %.
Elle est exclusivement disponible pour nos utilisateurs sur les plans GrowBig (et supérieurs), et elle est entièrement compatible avec PHP 8.4. Si vous souhaitez en profiter, consultez nos solutions d’hébergement mutualisé et inscrivez-vous dès aujourd’hui pour accélérer votre site web !
![Une bannière publicitaire énumérant les caractéristiques uniques d'hébergement rapide de SiteGround.](https://static-blog.siteground.com/wp-content/uploads/sites/6/2025/02/obtiens-vitesse-hebergement-banner-1024x512.jpg)
PHP 8.4 : Récapitulatif et prochaines étapes
PHP 8.4 est une amélioration utile pour les développeurs et les propriétaires de sites web. Avec sa syntaxe simplifiée, ses API améliorées et ses nouvelles fonctionnalités, il simplifie le codage tout en améliorant les performances et la fiabilité des sites web.
Rester à jour avec les versions de PHP est essentiel pour maintenir une présence en ligne rapide et fiable. Les mises à niveau doivent être effectuées avec soin, pour assurer une transition en douceur et une expérience sans faille pour vos visiteurs.
C’est pourquoi il est important d’utiliser un fournisseur d’hébergement web qui est à jour avec les dernières technologies et offre les outils nécessaires pour gérer votre site web en toute sécurité.
Chez SiteGround, la mise à niveau est un jeu d’enfant. Avec nos services PHP géré et PHP ultra-rapide, vous pouvez profiter de performances optimales et de mises à jour discrètes.
Prêt à découvrir ce que PHP 8.4 a de mieux à offrir ? Inscrivez-vous à nos plans d’hébergement mutualisés aujourd’hui et préparez votre site web pour l’avenir !
Démarrer la discussion