Contact salesFree trial
Blog

Fonctionnalités et changements de PHP 8.2

PHPAméliorationscaractéristiques
31 décembre 2022
Partager
Cet article est également disponible en Anglais.

Aujourd'hui est la sortie officielle de PHP 8.2.

Et vous pouvez déjà l'utiliser dans tous vos projets Upsun, avec un simple changement de code dans votre .upsun.app.yaml:

type : php:8.2

Essayez-le dès aujourd'hui !

PHP 8.2 introduit de nouvelles fonctionnalités très intéressantes, notamment

Voici une brève description de chaque nouvelle fonctionnalité et de la façon dont elle devrait vous faciliter la tâche.

Classes en lecture seule

Précédemment, PHP 8.1 a ajouté le support des propriétés de classe en lecture seule. Maintenant, le nouveau PHP 8.2 supporte la déclaration d'une classe entière en lecture seule.

Les classes readonly sont déclarées avec le mot-clé readonly avant la déclaration de la classe :

readonly class MyValueObject { public string $myValue ; }

Copier l'extrait

Les classes abstraites et les classes finales peuvent également être déclarées en lecture seule. L'ordre des mots-clés ne fait pas de différence, ce qui rend les choses assez faciles.

abstract readonly class Foo {} final readonly class Bar {}

Copier l'extrait

Il est également possible de déclarer une classe readonly sans aucune propriété, ce qui empêche les propriétés dynamiques tout en permettant aux classes enfants de déclarer explicitement leurs propriétés readonly.

Nouvelle extension de nombres aléatoires

PHP 8.2 introduit une nouvelle extension PHP nommée random, qui organise et consolide les fonctionnalités PHP existantes liées à la génération de nombres aléatoires.

Elle introduit également une série de structures de classes PHP et de classes d'exception pour permettre un choix granulaire du générateur de nombres aléatoires et de la gestion des exceptions.

Types de forme normale disjonctive (DNF)

Une autre nouvelle fonctionnalité de PHP 8.2 est la forme normale disjonctive (DNF), qui est un moyen standard d'organiser les expressions booléennes.

Spécifiquement, cela signifie que vous pouvez structurer une expression booléenne en une série de OU et de ET. Appliquée aux déclarations de type, cette méthode permet d'écrire de manière standard des types Union et Intersection combinés que l'analyseur syntaxique peut gérer.

Support de la rédaction des paramètres sensibles

En PHP 8.2, il est maintenant possible de marquer les paramètres sensibles avec un attribut PHP nommé SensitiveParameter, qui permet à PHP d'expurger les informations sensibles de la trace de pile.

function passwordHash(#[\SensitiveParameter] string $password) { var_dump(debug_backtrace()) ; } passwordHash('hunter2') ;

Copier l'extrait

Les constantes sont supportées dans les traits

La déclaration de constantes dans les traits est désormais également prise en charge. Les constantes de traits peuvent aussi être déclarées avec des modificateurs de visibilité et en tant que final (depuis PHP 8.1).

Toutes les déclarations de constantes suivantes sont valides en PHP 8.2 et plus :

trait FooBar { const FOO = 'foo' ; private const BAR = 'bar' ; final const BAZ = 'baz' ; final protected const QUX = 'qux' ; } class Test { use FooBar ; } echo Test::BAZ ; // 'baz'

Copier l'extrait

Avec PHP 8.2, il y a maintenant quelques dépréciations...

PHP 8.2 introduit quelques dépréciations, comme les propriétés dynamiques, l'interpolation des chaînes de caractères '${}', les objets appelables partiellement supportés, et lesméthodes 'utf8_encode' et 'utf8_decode'.

Fin du support de ZTS

Zend Thread Safe (ZTS) a été supporté par nos images PHP depuis la version 7.1.

Mais avec une diminution de l'utilisation, et des extensions abandonnant le support, la version 8.2 de notre image PHP, et les versions futures, ne supportent pas ZTS.

Extensions

Certaines extensions PHP peuvent ne pas être disponibles sur PHP 8.2. Certaines extensions sont déjà disponibles, mais vous devrez peut-être attendre que d'autres arrivent, comme newrelic, ioncube, sourceguardian, event, interbase, mongodb, oauth, pdo_sqlsrv, tideways, et xdebug.

Ils seront déployés progressivement, et une fois qu'ils seront disponibles , la documentation sera mise à jour en conséquence. Tout ce que vous avez à faire est de mettre à jour votre fichier .upsun.app.yaml pour les activer et pousser la nouvelle configuration.

Composer 2

Composer, le gestionnaire de dépendances PHP a été mis à jour vers Composer 2.

Mais ne vous inquiétez pas, Composer 2 sera en grande partie compatible avec vos flux de travail existants, et il apporte avec lui de nouvelles fonctionnalités, y compris des temps de téléchargement plus rapides et des vérifications des exigences de la plate-forme d'exécution.

Prise en charge de Blackfire pour PHP 8.2

PHP 8.2 fonctionnera également avec Blackfire à partir de sa date de sortie, le 8 décembre 2022 !

Vous pouvez en savoir plus sur PHP 8.2 avec Blackfire sur notre blog.

Voilà, c'est fait ! Essayez-le

Comme vous pouvez le constater, PHP 8.2 introduit quelques changements qui peuvent affecter les codes plus anciens. Par conséquent, la meilleure pratique consiste à tester votre application dans un environnement de développement.

Pour ce faire, créez d'abord une nouvelle branche dans votre référentiel. Ensuite, mettez à jour votre ./.upsun/config.yaml dans cette branche et changez la clé de type. Après cela, testez votre application et, en cas de succès, fusionnez la branche.

upsun checkout main $ upsun branch upgrade-php-8.2

Changer la version de php dans le fichier ./.upsun/config.yaml de php:8.1 à php:8.2

# ./.upsun/config.yaml type : php:8.2 $ git add ./.upsun/config.yaml && git commit -m "Upgrade PHP to v8.2" $ upsun deploy

Testez votre application

upsun checkout main $ upsun merge upgrade-php-8.2

Félicitations à tous ! Vous utilisez maintenant PHP 8.2 en production.

Et si vous rencontrez ou souhaitez simplement suggérer de nouvelles fonctionnalités ou des améliorations, n'hésitez pas à nous en faire part sur notre dépôt GitHub.

Vous pouvez également démarrer une conversation sur n'importe quel sujet lié à Upsun.com sur notre site web communautaire.

Bon déploiement !

Liens utiles :

Votre meilleur travail
est à l'horizon

Essai gratuit
Discord
© 2025 Platform.sh. All rights reserved.