Developpez.com

Le Club des Développeurs et IT Pro

PHP 5.6 sort en version stable

Et marque la fin de l'intégration des nouveautés à la branche 5.x

Le 2014-08-29 13:17:23, par Hinault Romaric, Responsable .NET
L’équipe responsable du développement de PHP vient de publier la version stable de PHP 5.6, qui apporte de nombreuses améliorations, des nouvelles fonctionnalités, ainsi que des changements qui affectent la compatibilité.

Les principales caractéristiques de cette version sont les suivantes :

  • L’introduction des expressions scalaires constantes, qui permet désormais aux développeurs de fournir une expression scalaire impliquant des littéraux numériques et de chaine et/ou des constantes dans des contextes ou PHP auparavant prévoyait une valeur statique, comme les constantes et les déclarations de propriétés ;
  • Le support des fonctions variadiques (fonction qui accepte un nombre variable de paramètres) ;
  • La prise en charge de l’exponentiation, grâce à l’introduction de l’opérateur « ** » ;
  • L’intégration de phpdbg, un débogueur PHP interactif mis en œuvre dans le module SAPI ;
  • « php://input » est désormais réutilisable et « $HTTP_RAW_POST_DATA » a été marqué comme obsolète ;
  • Les objets GMP (GNU Multiple Precision - bibliothèque logicielle de calcul multiprécision sur des nombres entiers, rationnels et en virgule flottante) prendront dorénavant en charge la surcharge d’opérateur ;
  • Avec PHP 5.6, le téléchargement des fichiers de plus de 2 Go est maintenant accepté.


En ce qui concerne les changements qui affectent la compatibilité, on note :

  • Le fait que les clés de votre tableau ne seront pas écrasées lors de la définition de celui-ci comme une propriété d’une classe via un littéral de tableau ;
  • La fonction json_decode() est désormais plus stricte ;
  • Les ressources GMP sont désormais des objets ;
  • Les fonctions Mcrypt (bibliothèque pour le chiffrement/déchiffrement des données en PHP) exigeront dorénavant des clés valides.


PHP 5.6 représente une version très importante de l’outil de développement Web. Elle marque la dernière version de la branche 5.x. Le successeur de cette version sera PHP 7 qui manquera une nouvelle génération pour le langage de programmation.

Pour rappel, après un débat houleux, les développeurs de PHP avaient décidé de sauter la version 6.x, pour adopter directement la version 7.x, afin d’éviter des confusions liées aux travaux non aboutis PHP 6 et de s’éloigner de la « malédiction du chiffre 6 ».

Par ailleurs, le langage pourra évoluer suivant une spécification. En début de ce mois, les développeurs de Facebook en collaboration avec le créateur de PHP Rasmus Lerndorf et le PDG de Zend Technologies Andi Gutmans, ont dévoilé une première ébauche d’une spécification formelle pour le langage de programmation.

Télécharger PHP 5.6

Source : Site du projet

Et vous ?

Que pensez-vous des améliorations de cette version ? Et du futur de PHP avec sa version 7 et sa spécification ?
  Discussion forum
4 commentaires
  • nicofuma
    Membre à l'essai
    Envoyé par Hinault Romaric
    [...]
    [*]Le support des fonctions variadiques (fonction qui accepte un nombre variable de paramètres) ;
    [...]
    C'est pas vraiment vrai ; les variadiques étaient déjà supportés, mais la 5.6 introduit une nouvelle notation qui permet de de l'identifier et de les utiliser plus facilement.

    Sinon, pour moi la 5.6 apporte aussi une autre nouveauté importante : la fonction
    Code :
    bool hash_equals ( string $known_string , string $user_string )
    qui permet de faire des comparaisons de chaînes en temps constant afin de sécuriser les hash/token/clefs... contre les attaques temporelles (Timing attack)
  • Tsilefy
    Membre émérite
    En début de ce mois, les développeurs de Facebook en collaboration avec le créateur de PHP Rasmus Lerndorf et le PDG de Zend Technologies Andi Gutmans, ont dévoilé une première ébauche d’une spécification formelle pour le langage de programmation.
    Heh ce n'était pas vraiment "en collaboration" :-)

    Facebook est arrivé avec le document déjà rédigé (mais poliment annoncé comme une version non finale) de son côté sans en référer à personne et a dit aux autres "On a fait ça, qu'en pensez-vous?". Non pas que je me plaigne, il était temps que quelqu'un rédige les specs, merci à FB.

    La nouveauté qui va le plus me servir n'est pas dans la liste donnée: la possibilité d'importer et d'aliaser une fonction namespacée.
  • Zefling
    Expert confirmé
    Envoyé par nicofuma
    C'est pas vraiment vrai ; les variadiques étaient déjà supportés, mais la 5.6 introduit une nouvelle notation qui permet de de l'identifier et de les utiliser plus facilement.
    Pour être plus précis il me semble que c'est cette notation :

    Code :
    1
    2
    3
    function foo ($var1, $var2, ...$vars) {
      // mon code
    }
    Au lieu de faire un func_get_args() et ensuite virer $var1 et $var2.

    Dès que j'y passe, j'ai un quelques de méthodes à revoir, ça réduira un peu le code.
  • nicofuma
    Membre à l'essai
    Et si tu veux vraiment la liste complète des possibilités... voici la rfc https://wiki.php.net/rfc/variadics =D