Exécution de code plus rapide

La dernière version de PHP apporte beaucoup de nouveautés mais celle qui nous obsède est JIT ( just in time compiler ). C’est la première fois que la version PHP dispose d’un compilateur – JIT – qui met en cache une version de votre code déjà interprété et génère un code machine en tant que sortie (le code machine est activé avec des 0 et des 1 uniquement). Le compilateur «juste à temps» promet des améliorations de vitesse pour les tâches et algorithmes complexes et ouvre de nouvelles opportunités au langage PHP pour élargir sa portée et ses applications.

Certains d’entre vous peuvent se demander quel est le lien entre JIT et Opcache, qui a apporté des gains de performances significatifs à de nombreux sites Web? Le travail principal de l’Opcache est de couper les processus de tokenisation, d’analyse et de compilation des Opcodes, qui sont ensuite traités par le moteur Zend. Le rôle de JIT est d’économiser sur l’exécution des Opcodes par le moteur Zend, donc il unit ses forces et intervient pour épargner des ressources là où l’Opcache ne peut pas aider.

Il convient de mentionner quelques inconvénients que nous avons remarqués jusqu’à présent:

L’exécution de PHP 8 avec JIT peut rendre plus difficile la résolution des erreurs de code car il peut être plus difficile de localiser quelle partie de votre code dans cette version interprétée est réellement en cause.
Si vous utilisez un site WordPress, vous ne pourrez peut-être pas noter d’améliorations significatives des performances grâce à JIT. Les développeurs WP travaillent toujours à rendre WP compatible avec PHP 8 et font maintenant appel à des testeurs, ce qui signifie que vous ne pourrez pas vraiment tester PHP8 sur votre site WP tout de suite. De plus, en raison de la façon dont WP interagit avec MySQL, une grande partie du temps d’attente ne provient pas de la compilation PHP, mais du temps de réponse de MySQL, qui ne peut pas être résolu avec l’aide du compilateur JIT.

Code de meilleure qualité

L’une des principales différences que vous remarquerez est que la plupart des avertissements et des avis qui n’ont pas été capturés sont désormais des exceptions ou des erreurs, qui peuvent être détectées et consignées. Il est possible qu’en raison de ce changement, de nombreux problèmes qui restaient cachés avec les versions précédentes de PHP apparaissent maintenant. Il s’agit d’une grande amélioration, car elle permettra aux développeurs de repérer plus facilement les problèmes potentiels. Cependant, gardez à l’esprit que cela peut être une bonne idée de définir display_errors = Off si vous décidez d’utiliser PHP 8 sur un site en direct pour ne pas afficher de telles erreurs aux visiteurs de votre site.

Code plus propre et plus court

Certains des nouveaux éléments, tels que l’opérateur nullsafe, améliorent considérablement la lisibilité du code, le rendant plus court et plus net. Au lieu d’imbriquer plusieurs «si», vous pouvez utiliser l’opérateur «nul» pour écrire tous ceux-ci en une seule ligne de code.

La tendance «type»
Depuis plusieurs versions maintenant, PHP tente de définir les arguments que chaque méthode pourrait adopter et devenir davantage un langage typé. Dans cette dernière version, il existe une fonctionnalité appelée «types d’union» qui vous permet de définir 2 types de valeur pour chaque fonction, ce qui est une continuation naturelle de cette tendance. Comme le montre l’exemple ci-dessous, la fonction peut renvoyer un entier ou un flottant:

fonction publique getNumber (): int | float {
retourne $ this-> number;
}

La liste des nouvelles fonctionnalités continue et nous suggérons cet article comme un bon point de référence pour les développeurs PHP:

https://stitcher.io/blog/new-in-php-8
https://stitcher.io/blog/php-jit
https://wiki.php.net/rfc/nullsafe_operator