Les versions PHP évoluent sans cesse. Le langage PHP a été mis à jour de manière drastique lors du passage à la version 7.0 en décembre 2015, ce qui a permis de gagner en performance par rapport aux versions précédentes. À la sortie de la version 8.0, ce dernier est devenu un langage très mature. La sortie de la version PHP 8.2 ne fait pas exception à cette règle. Depuis sa sortie début décembre de cette année, de nouvelles fonctionnalités sont apparues.
Dans un souci constant de toujours vous apporter le meilleur, PHP 8.2 est officiellement disponible sur les hébergements web mutualisé LWS, sur nos hébergements cPanel et sur nos serveurs VPS ! Vous pouvez maintenant choisir cette configuration depuis votre espace client LWS Panel.
Améliorez votre site avec PHP 8.2, maintenant disponible sur nos offres d’hébergement mutualisé
PHP 8.2 : Classes en lecture seule
Dans la version PHP 8.1, la prise en charge des propriétés en lecture seule avait été ajoutée. Toutefois, il n’était pas encore possible de créer des classes en lecture seule. Grâce à la version PHP 8.2, cela est désormais possible, ce qui permettra de rendre implicitement toutes les propriétés de cette classe en lecture seule. De plus, cela empêchera également la création de propriétés dynamiques.
readonly class foo { public int $bar; public function __construct() { } } $foo = new Foo(); $foo->bar = 2; $foo->baz = 1;
Types de forme normale disjonctive
La forme normale disjonctive permet de standardiser et d’organiser les expressions booléennes. Cette nouvelle fonctionnalité de type DNF disponible sur PHP 8.2 est simple et puissante si cette dernière est utilisée correctement.
Le référentiel PHP donne l’exemple suivant en supposant que les définitions d’interface et de classe suivantes existent déjà :
interface A {} interface B {} interface C extends A {} interface D {} class W implements A {} class X implements B {} class Y implements A, B {} class Z extends Y implements C {}
Grâce aux types DNF, il est désormais possible d’effectuer des déclarations de type pour les propriétés, les paramètres et les valeurs de retour comme suit :
//Accepter un objet qui implémente à la fois A et B, //Ou un objet qui implémente D (A&B)|D
//Accepter un objet qui implémente C, //Ou un enfant de X qui implémente également D, //Ou nul C|(X&D)|null
//Accepter un objet qui implémente les trois A, B et D, //Ou un entier, //Ou nul. (A&B&D)|int|null
PHP 8.2 : une mise à jour indispensable pour votre site, désormais disponible sur nos offres d’hébergement mutualisé
PHP 8.2 : Autoriser null, false et true en tant que types autonomes
Bien que PHP inclût déjà des types scalaires tels que int, string et bool dans les versions PHP 7, c’était étendu dans PHP 8.0 avec l’ajout des types d’union. Le même référentiel autorisait aussi l’utilisation de false et null dans le cadre d’un type d’union. Toutefois, ces derniers n’étaient pas autorisés en tant que types autonomes et pouvaient engendrer des erreurs telles que :
Fatal error: Null can not be used as a standalone type in ... on line ...
Ou
Fatal error: False can not be used as a standalone type in ... on line ...
Afin d’éviter ce type d’erreur, PHP 8.2 a ajouté la prise en charge de l’utilisation de false et null en tant que types autonomes.
Nouvelle extension « aléatoire »
Sur la version PHP 8.2, la fonctionnalité aléatoire de PHP repose fortement sur l’état Mersenne Twister.
Néanmoins, cet état est implicitement stocké dans la zone globale de PHP — il n’y a aucun moyen pour un utilisateur d’y accéder. L’ajout de fonctions de randomisation entre l’étape d’amorçage initiale et l’utilisation prévue casserait le code.
La maintenance d’un tel code peut être encore plus compliquée lorsque votre code utilise des packages externes.
Ainsi, l’utilisation des fonctions intégrées de PHP shuffle(), str_shuffle() et array_rand() n’est pas recommandée si vous avez besoin de nombres aléatoires cryptographiquement sécurisés. Dans de tels cas, vous devrez implémenter une nouvelle fonction en utilisant random_int() ou des fonctions similaires.
Autorisation des constantes dans les traits
Actuellement, les traits permettent uniquement de définir des méthodes et des propriétés, mais pas des constantes. Cela signifie que vous ne pouvez pas définir les invariants attendus par un trait dans le trait lui-même. Pour contourner cette limitation, vous devez définir des constantes dans sa classe de composition ou une interface implémentée par sa classe de composition.
Il est désormais possible de définir des constantes dans les Traits comme vous définiriez des constantes de classe grâce à un code tel que ce dernier :
trait Foo { public const CONSTANT = 1; } class Bar { use Foo; } var_dump(Bar::CONSTANT); // 1 var_dump(Foo::CONSTANT); // Error
Obsolescence des propriétés dynamiques
Jusqu’à la version PHP 8.1, il était possible de définir et de récupérer, de manière dynamique, des propriétés de classe non déclarées comme ceci :
class Post { private int $pid; } $post = new post(); $post->name = 'LWS';
Dans l’exemple ci-dessus, la classe Post ne déclare pas de propriété name. Toutefois, dans la mesure ou PHP autorise les propriétés dynamiques, il est possible de les définir en dehors de la déclaration de classe.
Les propriétés dynamiques permettent l’apparition de bogues et de comportements inattendus dans votre code. Par exemple, si vous commettez une erreur lors de la déclaration d’une propriété de classe en dehors de la classe, il est facile de la perdre de vue, en particulier lors du débogage d’erreurs au sein de cette classe.
Améliorez les performances de votre site grâce à PHP 8.2 sur nos hébergements mutualisés
PHP 8.2 permet également d’améliorer les performances de votre site internet. En effet, les principaux avantages de l’utilisation de cette dernière version sont :
- La version PHP 8.2 est beaucoup plus sécurisée que les versions antérieures ;
- PHP 8.2 résoudra tous les problèmes majeurs connus dans les versions précédentes ;
- Les performances de cette dernière version sont largement supérieures à celle des autres versions ;
- Grâce à la version PHP 8.2, des changements majeurs seront apportés pour les sites utilisant des CMS tel que WordPress, notamment au niveau des performances, ce qui est un plus lorsque l’on sait que plus de 70 % des sites utilisent ce CMS.
Profitez des avantages de PHP 8.2 sur nos offres d’hébergement mutualisé dès maintenant
Vous êtes enfin arrivé au terme de cet article, merci de votre attention 🙂 Fidèles à notre objectif de vous satisfaire, vous pouvez d’ores et déjà choisir cette configuration de la version PHP 8.2 sur toutes les formules d’hébergement Web LWS, depuis votre espace client LWS Panel.
La version PHP 8.2 est actuellement disponible sur toutes les formules d’hébergement Web LWS, hébergement mutualisé, sur nos hébergements cPanel et sur nos serveurs VPS !
Si vous avez des questions ou des commentaires, n’hésitez pas à nous en faire part ci-dessous.
Besoin d’un hébergeur web pour votre site ?
Découvrez l'offre exclusive de LWS : hébergement web à -50% ! Commencez dès maintenant à seulement 1,49€/mois au lieu de 2,99€. Profitez de performances optimales et d'un support exceptionnel. 🔥🚀