time_read34mn de lecture

PHP 8.1 disponible sur nos hébergements mutualisés

14 janvier 2022

PHP 8.1 disponible sur nos hébergements mutualisés

Afin que chacun de nos clients puissent disposer de la meilleure expérience possible, nous mettons à jour régulièrement les formules d’hébergement Web. Par cela, nous sommes en mesure de vous fournir des outils toujours à jour. De ce fait, LWS propose désormais la version PHP 8.1 publiée en novembre 2021, sur les formules Web.

Grâce à cette nouvelle version PHP, aux nouvelles fonctionnalités, améliorations et performances proposées, vous serez en mesure de travailler plus efficacement et de manière plus créative sur vos différents projets.

En effet, plus de 20 fonctionnalités ont vu le jour sur PHP8.1 et certaines autres ont disparus. Dans cet article, nous allons passer en revue quelques modifications apportées à la version PHP 8.1.

Quelles sont les nouvelles fonctionnalités sur la version PHP 8.1 ?

PHP 8.1

Cette nouvelle version majeure de PHP introduit plus de vingt nouvelles fonctionnalités. Il est a noter que cette liste n’est pas complète. En effet, il est possible que des modifications aient été effectuées après la publication de cette nouvelle version.

Enumérations

PHP8.1 prends désormais en charge les énumérations ou enum. Il s’agit d’un type de données énuméré qui consiste en un ensemble fixe de valeurs possibles. Pour cela, la syntaxe utilise enum pour déclarer les énumérations suivi du nom défini par l’utilisateur. Ce terme est suivi de “case” afin de permettre la déclaration des valeurs possibles.

L’énumération RFC utilise des cartes à jouer standard afin d’expliquer son fonctionnement. Il y a dans ce cas, quatre couleurs fixe qui sont les suivantes: Spades, Hearts, Diamonds, Clubs.

De ce fait, il vous sera possible d’énumérer ces combinaisons en utilisant enum, de la manière suivante :

enum Suit {
case Spades;
case Hearts;
case Diamonds;
case Clubs;
}

Maintenant, l’énumération “Suit” dispose de quatre valeurs possibles de combinaisons de cartes. De ce fait, il vous est possible d’utiliser une fonction et d’appliquer des types lors de l’acceptation ou du retour d’une valeur de combinaison avec la syntaxe suivante, par exemple :

function pick_card ( Suit $Suit ) {}
pick_card(Suit::Spades);

De plus, les énumérations peuvent également contenir une chaîne ou une valeur int facultatives en utilisant l’un des critères suivants :

  • Déclarer le type scalaire, qu’il s’agisse d’une chaîne de caractères ou d’un entier. Cela s’intègre dans la déclaration Enum,
  • Tous les cas ont des valeurs,
  • Tous les cas contiennent le même type scalaire, qu’il s’agisse de chaînes de caractères ou d’un entier.

Vous pouvez pour cela, utiliser la combinaison suivante :

enum Suit: string {
case Spades = '10';
case Hearts = '0';
case Diamonds ='5';
case Clubs = '3';

Fibres

Cette nouvelle fonctionnalité permet d’introduire l’exécution simultanée dans la programmation PHP. Il est toutefois à noter que cela ne signifie pas que les actions seront exécutées en même temps en PHP.

De plus, le programme principal ne peut pas suspendre ou terminer la fibre. En effet, seul le code se trouvant à l’intérieur de la fibre peut se suspendre et envoyer des données au programme principal. De ce fait, le programme principal peut alors continuer l’exécution de la fibre à partir du point de suspension.

Pour cela, voici un exemple simple d’utilisation des fibres dans un programme :

$fiber = new Fiber(function(): void {
echo "Bonjour de la fibre\n";
Fiber::suspend();
echo "Bienvenu dans la fibre\n";
});

echo "Démarrage du programme\n";
$fiber->start();
echo "Reprise du controle\n";
echo "Reprise de la fible\n";
$fiber->resume();
echo "Le programme se termine\n";

Dans le code ci-dessus, la commande “fiber::suspend()” suspendra l’exécution de la fibre. Ensuite, lorsque le code principal appelle le code “$fiber->resume“, la fibre s’exécutera depuis son point de suspension.

Type d’intersection pur

Grâce à la version PHP 8.1, il est désormais possible de prendre en charge les types d’intersection permettant de déclarer plusieurs types de classes pour une seule valeur. Bien que cela puisse paraître similaire à ce qui existe déjà dans la version PHP 8.0, il existe une différence significative.

Les types d’union permettent à la valeur de remplir n’importe quel type déclaré. De ce fait, si des chaînes et des entiers sont déclarés, la valeur peut être soit des chaines, soit des entiers déclarés.

Cependant, les types d’intersection purs n’autorisent que les valeurs remplissant tous les types déclarés. De ce fait, les types d’intersection purs ne peuvent utiliser que des types de classes ou d’interface. En effet, la plupart des types standard comme les chaines et les entiers ne peuvent être remplis simultanément.

Pour cela, sur PHP8.1, vous pouvez utiliser l’opérateur & (AND) comme dans l’exemple ci-dessous :

function count_and_iterate(Iterator&\Countable $value) {
foreach($value as $val) {}
count($value);

array_is_list

Désormais, une nouvelle fonction “array_is_list” est disponible. Cette fonction permet de vous aider à voir si un tableau contient des entrées qui sont une liste. Il vérifiera les clés du tableau. Si ces dernières sont dans l’ordre séquentiel, commencent par zéro et n’ont pas d’espace, il retournera la valeur “True“. Pour les tableaux vides, la valeur “True” sera également renvoyé par défaut.

Pour l’exemple suivant la fonction “array_is_list” renverra la valeur “True“:

array_is_list([]);
array_is_list([1, 2, 3]);
array_is_list([‘rock’, 2, 3]);
array_is_list([‘rock’, scissor]);
array_is_list([0 => 'rock', 'scissor']);
array_is_list([0 => 'rock', 1 => 'scissor']);
A l’inverse, la fonction “array_is_list” renverra la valeur “False” pour l’exemple suivant :
array_is_list([1 => 'rock', 'scissor']); // false, doesn’t start with 0
array_is_list([1 => 'rock', 0 => 'scissor']); // false, not in order
array_is_list([0 => 'rock', 'suit' => 'paper']); false, non-integer keys
array_is_list([0 => 'rock', 2 => 'paper']); false, non-sequential

Propriété lecture seule

Il s’agit d’une nouvelle propriété proposé par la version PHP 8.1. Cette dernière ne peut être initialisée qu’une seule fois à partir de la classe ou elle a été déclarée. De ce fait, toutes les classes disposant de cette propriété ne sera pas modifiable.
Voici un exemple de la façon dont vous pouvez utiliser cette propriété :
class Author {
public readonly int $authid;
public function __construct(int $authid) {
$this->authid = $authid;
}
}
$author = new User(25);

Fonctions fsync() et fdatasync()

fsync() et fdatasync() sont de nouvelles fonctions disponibles sur PHP 8.1. Ils ont des similitudes avec la fonction “fflush()“. Ces fonctions sont utilisées afin de forcer la synchronisation des modifications de fichiers sur le disque et s’assurer que les tampons d’écriture du système d’exploitation ont été vidés.
Voici un exemple de code utilisant cette fonction :
$file = 'sample.txt';
$test = fopen($file, 'h');
fwrite($test, 'sample data');
fwrite($test, "\r\n");
fwrite($test, 'another data');
fsync($test);
fclose($test);

Nouveauté dans les initialiseurs

Grâce à l’utilisation de PHP 8.1, vous êtes désormais en mesure d’utiliser de nouvelles expressions pour initialiser une valeur à l’intérieur d’une déclaration de fonction comme dans l’exemple ci-dessous :
class Test {
public function __construct(
private Logger $logger = new NullLogger,
) {}
}

Autres petits changements

Avec chaque version, il y a un tas de changements qu’il vous est possible visualiser sur le guide de mise à jour disponible sur GitHub. Voici un petit résumé des changements les plus importants :
  • Les entiers et les flottants dans les ensembles de résultats PDO MySQL et Sqlite seront renvoyés à l’aide de type PHP natifs au lieu de chaînes lors de l’utilisation d’instructions préparées.
  • Les UTF-8 mal-formé seront remplacé par des caractères unicodes au lieu d’aboutir à une chaîne vide.
  • Les “hash”, “hash_file” et “hash_init ont un argument supplémentaire qui leur est ajouté appelé $options

La version PHP 8.1 est-elle compatible avec WordPress, Woocommerce ou Prestashop ?

WordPress

Bien qu’il faille faire attention lors de la mise à jour vers la version PHP 8.1 dans la mesure où certains plugins ou thèmes peuvent ne pas être compatible avec un changement de version PHP, les derniers versions WordPress, Woocommerce et Prestashop sont compatibles.
Si votre site a été créé il y a quelques temps déjà et ne dispose pas de la dernière version du CMS, il sera nécessaire de vérifier que les plugins utilisées sur vos sites soient bien compatibles avec la dernière version du CMS concerné avant de le mettre à jour. Il en va de même pour les thèmes utilisées. Une fois la mise à jour du CMS, il vous sera aisé de changer de version PHP pour la dernière par le biais de votre espace client.

Comment activer PHP8.1 sur votre formule d’hébergement Web LWS?

Il vous est possible d’activer rapidement la nouvelle version PHP sur votre formule d’hébergement Web depuis votre espace client.
  • Rendez-vous sur votre espace client LWS et cliquez sur “Gérer” se trouvant derrière le domaine concerné par le changement de version PHP.
  • Cliquez sur “Configuration PHP” se trouvant dans la rubrique “Base de données et PHP“.

configurer PHP

  • Choisissez la version PHP souhaitée et cliquez sur le bouton “Valider” afin de sauvegarder votre demande.

version PHP

Un délai de 15 minutes peut être nécessaire pour que le changement de version PHP soit effectif.

Quelles sont les formules compatibles avec PHP 8.1 ?

LWS propose diverses formules adaptées à vos besoins ainsi qu’à vos projets. En effet, il vous est possible de choisir entre différentes gamme de formule, de la plus accessible à la plus formule premium. Cela dans le but de s’adapter à chaque client. LWS s’efforce de mettre à jour les serveurs à chaque changement de version PHP afin de s’adapter continuellement.

  • Les formules LWS Perso à LWS Performance dispose de la version PHP 8.1. Il est cependant conseillé de disposer d’une formule Web de type LWS Starter ou supérieur si vous décidez d’installer une boutique en ligne.

hebergement web

 

  • Les formules WP Start à WP Premium sont dédiées à de l’hébergement WordPress ou Woocommerce. Ces formules disposent de la version PHP 8.1. De plus, il vous sera possible d’installer un un clic WordPress sur cette formule.

hebergement wordpress

  • Les formules Ecommerce M à XL sont spécialement dédiées et optimisées pour le déploiement d’une boutique en ligne tel que Prestashop ou Woocommerce. Tout comme les deux autres types de formule, cette dernière est compatible avec PHP 8.1.

site e-commerce

Conclusion

Avez-vous des questions sur la version PHP 8.1 disponible sur nos hébergements web mutualisés ? N’hésitez pas à nous en faire par dans la section commentaire se trouvant ci-dessous !

N’oubliez pas non plus qu’il est crucial de bien choisir son fournisseur d’hébergement Web. En effet, il est préférable de tenir compte de certains facteurs tels que la fiabilité et l’évolutivité des formules proposées par ce dernier. La disponibilité des différentes versions PHP en fait bien entendu parti.

hebergement web

Avatar de l'auteur

Auteur de l'article

Fabrice S.

Développeur web full stack et consultant SEO. Je suis Fabrice, expert en développement web Full Stack, consultant SEO et noms de domaine chez LWS 🌐. J'adore partager mes astuces et mon expérience pour vous aider à briller sur le web ! Suivez-moi pour des conseils pratiques et fun 😊.

Il y a 835 jours

note article

4.7/5 (117 votes)

Commentaires (0)
Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

White Book for other Category

Hébergement Web LWS - 3 mois offerts

Hébergement Web Starter LWS GRATUIT pendant 3 mois ! 🚀

Cette offre exclusive comprend tout ce dont vous avez besoin pour créer votre site web GRATUITEMENT : Hébergement 250Go SSD, 5 sites webs hébergeables, WordPress et autres CMS en 1 clic, support réactif 7J/7, serveurs en France...