PHP 8.0 disponible : de grosses améliorations pour le langage
Le 27 novembre 2020 à 08h51
2 min
Logiciel
Logiciel
La nouvelle version de PHP est clairement majeure. Les nouveautés y sont particulièrement nombreuses, et beaucoup sont importantes.
Par exemple, PHP 8.0 propose des nouveaux compilateurs JIT (Just In Time, compilation à la volée). L’un des deux, Tracing JIT, se veut particulièrement prometteur, avec « environ trois fois plus de performances sur des benchmarks synthétiques et 1,5 à 2 fois plus de performances sur certaines applications à longue durée d'exécution ».
Parmi les autres améliorations, on note :
- Les arguments nommés (on ne spécifie que les paramètres requis), indépendants et auto-documentés
- Des métadonnées structurées avec la syntaxe PHP pour les attributs
- La promotion des propriétés des constructeurs
- Les types d’unions, permettant d’utiliser les déclarations de types d’union native, validées à l’exécution
- L’expression Match, qui réalise des comparaisons strictes, le résultat pouvant être enregistré dans une variable ou retourné
- Nullsafe, opérateur autorisant les chaines d’appels à la place des vérifications conditionnelles de null. Si l’un des éléments échoue, l’exécution de la chaine est coupée et cette dernière équivaut à null.
- Une majorité de fonctions internes renvoient une exception Error si la validation du paramètre échoue
- Une vérification de type plus sévère pour les opérateurs arithmétiques et bit à bit
- La possibilité de créer des héritages avec les méthodes privées
- Un nouveau type mixed
- Les virgules trainantes sont autorisées dans les listes de paramètres et listes des use d'une fermeture
- L’ajout de catchs non capturants
- La possibilité d’utiliser ::class sur les objets
La liste complète des nouveautés peut être consultée depuis l’annonce officielle.
Le 27 novembre 2020 à 08h51
Commentaires (15)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 27/11/2020 à 09h35
Que du bon !
Et certains iront encore dire que faire du PHP en 2020 c’est être has been
Le langage évolue dans le bon sens, même si les débats ont été pas mal animé sur certaines RFC de la 8.0.
Le 27/11/2020 à 12h24
J’ai souvenir d’un tweet où quelqu’un de Hey, le service mail de Basecamp, détaillait leur stack technique.
On aurait pu s’attendre à de la techno bleeding edge, du node, du graphql, de la jamstack dans tous les sens, et au final c’était sql, php, html, css et un peu de JS
Le 27/11/2020 à 09h42
Hâte de migrer notre codebase en Php 8 ^^
Il y a des ajouts majeurs vraiment intéressants :)
Le 27/11/2020 à 15h27
Pour quelqu’un qui n’a pas fait de php depuis 10 ans, j’avoue, ça donnerait presque envie de réessayer.
Au final ça va toujours dans le sens d’une convergence entre tous les langages*.
[*: à part go]
Le 27/11/2020 à 23h19
Entre les langages qui font le web surtout. Mais chacun garde quand même ses spécificités et ses qualités (et défauts). La convergence, s’il y en a une, est surtout au niveau de certaines syntaxes (les langages s’inspirent les uns des autres) :)
Le Nullsafe est clairement inspiré de Typescript par exemple.
Y a pas moyen de forcer la version avec leur fichier de config à la racine du FTP pour la 7.4 ?
Le 28/11/2020 à 07h15
Le nullsafe s’est aussi vu dans des languages backend comme kotlin, c#, ruby etc., avant que ça n’apparaisse dans TypeScript. Et on pourrait même dire que le concept derrière cette syntaxe vient de languages fonctionnels comme haskell (la monade “maybe”). Du coup non je ne trouve pas que ce soit surtout les langages du web qui convergent 🙃
(Je parle bien purement du langage, pas de leur application au runtime)
Le 30/11/2020 à 07h49
Kotlin a une séparation stricte en type nullable et non-nullable. C’est bien plus avancé que là où ça semble être juste un opérateur
Le 30/11/2020 à 13h12
Sur ces langages là je ne peux pas dire donc je te crois volontiers 😁
Le 28/11/2020 à 21h38
Si on a pas de tâches cron on peut, mais sinon ça les fait planter. (forcer la 7.4 sur ovh)
Le 27/11/2020 à 22h20
Dommage qu’OVH n’est déjà pas passé à PHP 7.4, alors il faudra attendre 10 ans pour qu’OVH installe la version 8 sur les serveurs mutualisés… typique du made in france…
Le 28/11/2020 à 03h52
y’a desq incompatibilités entre 7.4 et 8.0 ou je peux upgrade à la rache les yeux fermés?
Le 28/11/2020 à 17h41
pas moyen
Le 29/11/2020 à 01h05
A peu près tous les devis js/ts.
Et ils ont raison
Le 29/11/2020 à 05h39
En fait, ceux qui subissent le javascript-bashing compensent avec du php-bashing, c’est ça ? 🤔 😅
Le 02/12/2020 à 22h52
Je fais du PHP et je dois avouer que je n’ai pas tout compris, est-ce que vous avez des exemples plus concrets svp ?