Karim's Blog

Un peu de tout sur CSS, HTML, AngularJS, JavaScript, Php et le reste

La nouvelle version de PHP

Guid de la performance de PHP 7

"PHP 7 est plus rapide." C'est la principale promesse faite par Zend et les contributeurs principaux du projet PHP. Cette nouvelle version est basée sur PHPNG (pour PHP Next-Generation). Une initiative qui a été lancée par Zend en réponse à la technologie HHVM de Facebook, qui avait pour but de proposer une version de PHP qui se voulait plus performante.

Selon Zend, la mise à jour des applications vers PHP 7 pourrait engendrer un surcroît de performance de 25% à 70%. L'éditeur a publié quelques indicateurs qu'il a résumé en une infographie publiée en mai 2015. Ces comparatifs montrent que WordPress (en version 4.1) serait deux fois plus rapide avec PHP 7 qu'avec PHP 5.6, et Drupal (7) 70% plus rapide. A travers son benchmark, le projet PHP met aussi en avant un niveau d'optimisation qui se veut être au même niveau que celui de HHVM, voire légèrement au dessus (cf. infographie ci-dessous).

Premier Benchmark du JDN

Selon les premiers comparatifs réalisés par CCM Benchmark, l'éditeur du JDN, les gains (entre PHP 5.6 et PHP 7) peuvent atteindre 50% en temps d'exécution CPU, et près de 50% également en consommation de mémoire. "C'est au-dessus de ce que nous avions anticipé. Je n'ai jamais vu un tel différentiel de performance lors des précédentes montées de version", note Xavier Leune, responsable Framework PHP chez CCM Benchmark

Les nouveautés de PHP 7

Zend avait diffusé en mars dernier une infographie qui présentait quelques évolutions de PHP 7. Elle mentionnait les Spaceships qui font apparaitre un nouvel opérateur de comparaison <=>. Il pourra être utilisé pour combiner des comparaisons (un décryptage en français ici).

Autre évolution évoquée, les Return Type Declarations & Scalar Type Hints permettent de déclarer (de manière optionnelle) un type de retour pour les fonctions et méthodes. Les Type Hinst comme cette nouvelle déclaration peuvent en outre prendre en charge les types scalaires (pour préciser le retour attendu en matière de nombre ou chaîne de caractères). "C'est très intéressant. Cela va contribuer à simplifier la gestion de la cohérence des entrées et sorties"

Pourquoi PHP est-il passé de la version 5 à la version 7 ?

En juillet 2014, les contributeurs du projet PHP se sont prononcés sur un passage direct de PHP 5.x à PHP 7.x (voir le wiki du projet). En fait, PHP 6 a bien existé, mais il est resté à l'état de chantier. Cette version devait conduire à l'intégration de l'Unicode au langage (en vue de faciliter la manipulation de texte dans différentes langues). Mais face aux trop nombreuses difficultés techniques, l'initiative a été abandonnée. Les autres évolutions envisagées dans PHP 6 ont depuis été réintégrées à de nouvelles versions intermédiaires (PHP 5.3 et 5.4). C'est pour éviter la confusion qu'est née alors cette idée de passer directement à la version 7.

Enfin pour les partisans de PHP 7, le chiffre 6 a aussi trop souvent été associé à la notion d'échec dans le monde des environnements de développement web : "PHP 6 a été un échec ; Perl 6 a été un échec. Il est en fait associé à l'échec, même en dehors du monde des langages dynamiques : MySQL 6 existait, mais n'a jamais été publié."