Après plusieurs années de développement, le 3 décembre dernier la dernière version de PHP est sortie à savoir : La version PHP 7.
Les principales améliorations de PHP 7
Typage fort
Souvent critiqué par les puristes pour son côté très permissif, PHP 7 se rapproche de plus en plus des langages plus sérieux disposant d’un typage fort.
Dans une déclaration de fonction, il était déjà possibles de spécifier le type de certains paramètres (array, Interface ou Class), il est désormais possible de le spécifier pour les types primitifs : int, float, string, bool.
Il est également possible de définir le type de retour d’une fonction :
function longueur_chaine(string $arg): int { return strlen($arg); }
Un nouvel opérateur de comparaison
Cet opérateur nommé Tie Fighter s’écrit de cette façon : <=>.
Il retournera -1, 0 ou 1 en fonction de si la valeur comparée à gauche est inférieure, égale ou supérieure à la valeur de droite :
echo 2 <=> 1; // Affichera 1 echo 1 <=> 1; // Affichera 0 echo 1 <=> 2; // Affichera -1
Cela permettra à terme de faciliter la lecture et l’écriture de certains algorithme nécessitant un grand nombre de comparaison entre différentes valeurs.
Test sur l’existence d’une variable
Dans le même esprit de clarté de lecture du code, PHP 7 apporte une amélioration sur les tests d’existence d’une variable.
Dans certains cas extrêmes on pouvait être amené à tester l’existence d’une variable de cette façon :
if (isset($_POST['ma_variable'])) { $ma_variable = $_POST['ma_variable']; } elseif (isset($_GET['ma_variable'])) { $ma_variable = $_GET['ma_variable']; } elseif ($_SESSION['ma_variable']) { $ma_variable = $_SESSION['ma_variable']; } else { $ma_variable = 'default'; }
Désormais avec le nouvel Null coalescing (??), le code ci-dessus sera traduit de cette façon :
$ma_variable = $_POST['ma_variable'] ?? $_GET['ma_variable'] ?? $_SESSION['ma_variable'] ?? 'default';
La fin des fonctions mysql_query
Annoncée comme étant deprecated depuis quelques versions, l’extension mysql à été définitivement supprimée de la version PHP 7. Désormais pour interroger une base de données MySQL, il conviendra de passer impérativement soit par l’extension PDO soit via MySQLi. D’un point de vue de la sécurité c’est une grande avancée, toutefois pour les anciennes applications utilisant encore les fonction mysql le travail de migration s’annonce conséquent.
Les gains de performance
Selon les principaux contributeurs du projet et Zend, la société éditrice du langage : PHP 7 est plus rapide.
En mai 2015, dans le cadre d’une infographie, Zend annonce des gains de performances allant de 25% à 70%. Selon cette source, un site WordPress (en version 4.1) serait deux fois plus rapide sous PHP 7 que sous PHP 5.6 ce qui est un gain considérable par rapport aux précédentes évolutions du langage.
Rendre compatible votre site avec PHP 7
Si votre site est basé sur l’un des principaux CMS du type WordPress, Joomla ou Drupal…. Dans leurs dernières mises à jour, les spécificités de PHP 7 ont été prises en considération par les équipes de développement, vous n’avez donc pas à vous soucier de la compatibilité de votre site avec la nouvelle version de PHP.
Par contre si vous disposez d’une solution sur mesure, il conviendra de suivre le guide de migration proposé sur le site officiel de PHP : Guide de migration PHP 7.
Activer PHP 7 sur votre formule mutualisée LWS
Chez LWS, il est désormais possible d’activer PHP 7 sur votre hébergement mutualisé en seulement quelques clics via le LWS Panel.
- Depuis votre espace client, rendez-vous dans la rubrique « Configuration PHP » de l’administration de votre formule d’hébergement mutualisé :
- Dans la partie « Version PHP », selectionnez la version PHP 7.0, puis cliquez sur le bouton « Valider » pour finaliser l’opération :
- Un délai d’une heure peut-être nécessaire pour que le changement de version de PHP soit pris en compte.
Donc n’attendez plus pour propulser votre site Web à la vitesse supérieur !