PHP 5.6.0 released

Modifications entrainant une incompatibilité ascendante

Bien que la plupart du code PHP 5 existant devrait fonctionner sans aucune modification, vous devez prendre en considération quelques incompatibilités ascendantes :

Les clés des tableaux ne sont pas écrasées lors de la définition d'un tableau comme une propriété d'une classe via un tableau litéral

Précédemment, les tableaux déclarés comme des propriétés de classe qui mixaient des clés explicites et implicites pouvaient voir leurs éléments écrasés sans avertissement si une clé explicite était identique à une clé séquentielle implicite. Par exemple :

<?php
class {
    const 
ONE 1;
    public 
$array = [
        
self::ONE => 'foo',
        
'bar',
        
'quux',
    ];
}

var_dump((new C)->array);
?>

Résultat de l'exemple ci-dessus en PHP 5.5:

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Résultat de l'exemple ci-dessus en PHP 5.6:

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

Rigueur de json_decode()

json_decode() rejette maintenant les variantes non écrites en minuscule des littéraux JSON true, false et null, en accord avec la spécification JSON, json_last_error() est afféctée en conséquence. Précédemment, les valeurs passées à json_decode() contenant l'une de ces valeurs en majuscules ou dans une casse mixte étaient acceptées.

Ce changement va affecter uniquement les cas ou du JSON invalide serait passé à json_decode(): du JSON valide sera non affecté et sera analysé normalement.

Stream wrappers vérifie maintenant les certificats de pair et les noms d'hôtes lors de l'utilisation de SSL/TLS

Tous les flux clients cryptés activent désormais la vérification par paire par défaut. Par défaut, ceci va utiliser le CA OpenSSL par défaut pour vérifier la paire de certificat. Dans la plupart des cas, aucune modification n'a besoin d'être faite pour communiquer avec des serveurs et des certificats SSL valides, sachant que les distributeurs configurent généralement OpenSSL pour utiliser les CA connus.

Le CA par défaut peut être écrasé sur une base globale en utilisant les options de configuration openssl.cafile ou openssl.capath, ou via une requête basique en utilisant les options de contexte cafile ou capath.

Bien que ce ne soit pas conseillé en général, il est possible de désactiver la vérification de certificats par paire pour une requête en définissant l'option de contexte verify_peer à FALSE, et pour désactiver la validation du nom des paires, en configurant l'option de contexteverify_peer_name à FALSE.

Les ressources GMP sont maintenant des objets

Les ressources GMP sont maintenant des objets. L'API de l'extension GMP n'a pas changé, et le code existant devrait continuer à fonctionner sans modification à moins qu'une vérification explicite ne soit faite en utilisant is_resource() ou équivalent.

Les fonctions Mcrypt requièrent maintenant des clés ou IV valides

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() et mcrypt_ofb() n'acceptent plus des clés ou vecteurs d'initialisation (IVs) de tailles incorrectes, et bloquent les modes cipher qui requièrent des IVs si ceux si ne sont pas fourni.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top