BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Sortie de PHP 5.6

Sortie de PHP 5.6

Favoris

L'équipe en charge du développement de PHP a annoncé la publication de PHP 5.6. D'après l'équipe, cette dernière version apporte de nouvelles fonctionnalités et un certain nombre d'améliorations mais également quelques changements non rétrocompatibles.

Parmi les changements les plus importants, on trouve :

  • Les expressions scalaires constantes

    Il est maintenant possible d'utiliser de l'arithmétique basique ainsi que des opérations logiques lors de la déclaration des constantes, de la définition d'arguments de fonction par défaut ou de propriétés de classe :

    const ONE = 1;
    const TWO = ONE * 2;

    class C {
      const THREE = TWO + 1;
      const ONE_THIRD = ONE / self::THREE;
      const SENTENCE = 'The value of THREE is '.self::THREE;

      public function f($a = ONE + self::THREE) {
        return $a;
      }
    }

  • Une meilleure syntaxe pour les fonctions variadiques

    Les fonctions variadiques peuvent maintenant être déclarées avec l'opérateur ... :

    public function variadic_function($param, ...$paramsArray) {
      // method implementation
    }

    Dans l'exemple ci-dessus, ...$paramsArray indique à l'interpréteur de placer tous les arguments variadiques dans le tableau $paramsArray qui peut ensuite être utilisé dans le code de la fonction. Précédemment, les arguments variadiques étaient déclarés comme ceci :

    $paramsArray = array_slice(func_get_args(), 1);

  • Exponentiation

    Le nouvel opérateur ** permet de calculer un nombre à la puissance d'un autre.

  • UTF-8

    L'encoding par défaut est maintenant UTF-8.

  • Surcharge de l'opérateur GMP

    Les objets GMP supportent maintenant la surcharge d'opérateurs et le casting en types scalaires. Cela permet un code plus expressif lors de l'utilisation de GMP :

    $a = gmp_init(42);
    $b = gmp_init(17);

    // Code pre-5.6 code :
    var_dump(gmp_add($a, $b));
    var_dump(gmp_add($a, 17));
    var_dump(gmp_add(42, $b));

    // Nouveau code :
    var_dump($a + $b);
    var_dump($a + 17);
    var_dump(42 + $b);

  • Upload de gros fichiers

    La limite de 2Go a été retirée, il est donc maintenant possible d'envoyer des fichiers de taille arbitraire.

Pour les utilisateurs mettant à jour depuis PHP 5.5, un guide de migration est disponible et détaille les différences entre 5.5 et 5.6.0 ainsi qu'une démo de bon nombre de nouvelles fonctionnalités.

PHP 5.6.0 introduit également des changements affectant la compatibilité :

  • lors de l'utilisation d'un tableau littérale comme propriété de classe, les clés du tableau ne seront pas écrasées
  • json_decode() est plus strict concernant la syntaxe JSON
  • les gestionnaires de protocoles et de flux vérifient maintenant par défaut les certificats et noms de domaine lors de l'utilisation de SSL/TLS
  • les ressources GMP sont maintenant des objets
  • les fonctions Mcrypt requièrent maintenant des clés et IVs valides

Une liste complète de tous les changements peut être trouvée dans le ChangeLog.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT