Maison  >  Article  >  Présentation des performances de la version PHP7.2

Présentation des performances de la version PHP7.2

小云云
小云云original
2018-05-14 13:49:5811847parcourir

Cet article vous présente principalement en détail les performances de la version PHP7.2, dans l'espoir d'aider tout le monde à mieux comprendre PHP7.2.

1. Modifications rétrocompatibles

Core :

  • Pour les ressources fermées, la fonction gettype() renverra la ressource (fermée ), remplaçant l'ancien type inconnu.

  • Pour __PHP_Incomplete_Class objet de classe, is_object Le ( ) la fonction retournera vrai.

  • Supprimer la prise en charge du système d'exploitation Netware.

  • le type de tableau est converti en type d'objet ((object) ou settype( ) ), la clé entière sera convertie en nom d'attribut, ce qui résout le problème selon lequel les clés numériques des versions précédentes ne peuvent pas être utilisées comme noms d'attribut.

  • le type d'objet est converti en type de tableau ((array) ou settype( ) (Le problème des propriétés entières inaccessibles. Une référence non qualifiée à une constante non définie entraînera une erreur de niveau d'avertissement, remplaçant le niveau de notification précédent. Les versions ultérieures seront des erreurs de niveau d'erreur.

  • Les versions minimales de Windows prises en charge sont Windows 7 et Windows Server 2008 R2.

  • Annule le comportement de vérification de compatibilité des valeurs d'attribut

    trait
  • natives.

    objet
  • ne sera pas utilisé comme nom de classe. <🎜> La fonction

    fmod() est la même, la fonction bcmod()

    annule l'opération modulo (%) , c'est-à-dire que la partie décimale de la valeur est tronquée en un entier. Par exemple :
bcmod('4', '3.5')

renverra 0,5 au lieu de 1.

  • Hashhash_hmac (), hash_hmac_file(),

    hash_pbkdf2()
et

hash_init() (lorsque le paramètre options est

HASH_HMAC
  • ), ces fonctions ne prendront plus en charge les fonctions de hachage non chiffrées.

    JSONQuand json_decode()Lorsque le deuxième paramètre associé à la fonction est nul, le JSON_OBJECT_AS_ARRAY

    dans les options de support des options sera activé, avant Ce paramètre a été ignoré par nos soins dans la version.

Séance

  • Déplacer En plus des codes associés à register_globals, "!" peut être utilisé dans le nom de clé de $_SESSION

    .

session
  • est utilisée pour gérer correctement l'état de la session et interdire les opérations invalides en cas de problème avec. le code, cela déclenchera le changement. Si malheureusement vous rencontrez ce problème, c'est qu'il y a un problème avec votre code.

    sesseion_start(), session_status()

  • ,
  • session_regenerate_id(), ces fonctions sont utilisées pour définir ou renvoyer l'état de session correct.

  • session_unset(), session_write_close()/ session_commit(), session_abort(), session_reset(), ces fonctions ne renvoient aucune valeur de retour. une valeur booléenne. Ils autorisent les paramètres vides et vérifient ces paramètres vides.

  • session_start(), session_set_cookie_params(), session_name(), session_module_name(), session_set_save_handler(), session_regenerate_id(), session_cache_limiter(), session_cache_expire(), session_unset(), session_destroy(), session_write_close()/ session_commit(), session_reset(), ces fonctions désactiveront le statut de session non valide et le statut d'en-tête http, et renverront la valeur booléenne ou la valeur numérique correcte.

  • session.name, session.save_path, session.cookie_lifetime,session.cookie_path, session.cookie_domain,session.cookie_httponly, session.cookie_secure, session.use_cookies, session.use_only_cookies, session.use_strict_mode, session.referer_check, session.cache_limiter, session.cache_expire, session.lazy_write, session. save_handler, session.serialize_handler, session.gc_probability, session.gc_pior, session.gc_maxlifetime, le réglage de ces valeurs ini doit être appelé avec succès par ini_set() fonction, les opérations de modification ini invalides ne réussiront pas.

  • La session pouvant être gérée correctement (session_start()), partielle Les messages d'erreur de niveau E_ERROR seront convertis en niveau E_WARNING.

  • Les sessions ne seront plus initialisées avec des sessions invalides et inutiles

  • Lorsque les informations d'en-tête ont été envoyées, la définition de la nouvelle valeur ini sera invalide à ce moment (via session_name(), session_module_name(), session_save_path(), session_cache_limiter() et session_cache_expire() Ces fonctions).

    Ces comportements corrects affectent désormais l'état des sessions de gestion en mode ligne de commande cli. L'utilisation de la mise en mémoire tampon de sortie comme dans les applications Web résoudra le problème avec les scripts cli.

Standard

Depuis la version 7.1 , sur une machine 64 bits, l'ordre des nombres aléatoires générés par mt_rand() et rand() de la même graine peut être différent.

2. Nouvelles fonctionnalités

Core

  • Lors de la substitution d'une méthode ou d'une interface, son type de paramètre est omis. Cela obéit à la contravariance du type de paramètre du principe d'équilibre de Liskov.

  • Permet à la classe abstraite héritée de remplacer la méthode abstraite de la classe abstraite héritée.

  • Autorise les virgules de fin pour regrouper les espaces de noms.

  • Les annotations de type objet sont autorisées. Implémentation Ajout de la prise en charge du backend LMDB.

JSON

  • dans

    json_encode()
et

json_decode() Ajout de la prise en charge de

JSON_INVALID_IGNORE
  • et

    >Prise en charge de JSON_INVALTD_UTF8_SUBSTITUTE, remplaçant le type invalide codé en utf-8 précédent. OCI8Ajouté Fournit la prise en charge du basculement transparent des applications (TAF) d'Oracle Database.

PCRE

  • Ajouté L'option interne (j) a été ajoutée pour modifier l'option locale

    PCRE_DUPNAMES
. Nouvelle extension de cryptage. Implémentation pour écrire des BLOB.

    Standard
  • Quand Lors de la compilation de PHP avec libargon2, l'API de hachage de mot de passe simplifiée a été mise à jour pour prendre en charge Argon2.

La plateforme Windows prend en charge la fonction proc_nice()

.
  • Zip

Lire /Écrire une archive chiffrée, dépend de libzip 1.2.0, Nouvelle méthode :
  • ZipArchive:: setEncryptionName($name, $method[,$password]); $ mot de passe]);

    Nouvelles constantes : ZipArchive:: EM_NONE ZipArchive:: EM_AES_128 ZipArchive:: EM_AES_192 ZipArchive:: EM_AES_2 56

Accepte le "mot de passe" du contexte du flux zip.

  • ZipArchive implémente la comptabilité, en ajoutant la méthode ZipArchive::count()

    .
  • 3. Modifications du module SAPI

4. >Voici les fonctionnalités qui seront obsolètes dans la version php8.0.

  • CoreLe suivi des erreurs dans le fichier de configuration permettra être abandonné.

  • __autoload()

  • sera obsolète, utilisez
  • spl_autoload_register() à la place.

(unset) sera obsolète. Ce changement n'affectera pas unset (. $var)

structure du langage.

create_function()

La fonction sera obsolète et utilisera à la place une fonction anonyme. La structure de la fonction

  • each() sera obsolète, utilisez foreach()

  • boucle à la place.
  • Exif

  • read_exif_data () sera obsolète, utilisez exif_read_data() à la place.

  • GD

    • png2wbmp() et jpeg2wbmp() seront obsolètes.

    GMP

    • gmp_random () sera obsolète, utilisez gmp_random_bits() ou () à la place.

    Intl

    • INTL_IDNA_VARIANT_2003 sera obsolète, utilisez INTL_IDNA_VARIANT_UTS46 à la place.

    Mbstring

    • mbstring Le fichier de configuration de .func_overload sera supprimé.

    Standard

    • Non Les arguments nécessaires pour appeler parse_str() seront ignorés.

    • L'appel de assert() avec un argument de chaîne sera obsolète et des expressions régulières seront utilisées à la place.

    5. Fonctions modifiées

    Standard

    • Lorsqu'il est défini sur PASSWORD_ARGON2I, password_hash() peut générer des hachages Argon2.

    • Lors de l'utilisation de PASSWORD_ARGON2I, les options suivantes peuvent être définies par défaut : memory_cost ,time_cost. La valeur par défaut de ces options est PASSWORD_ARGON2_DEFAULT_MEMORY_COST. S'ils ne sont pas définis, les valeurs par défaut sont PASSWORD_ARGON2_DEFAULT_TIME_COST et PASSWORD_ARGON2_DEFAULT_THREADS.

    • password_verify() peut vérifier les hachages Argon2.

    • password_get_info() et password_needs_rehash() peuvent Accepte les hachages Argon2.

    • mail()/mb_send_mail()Accepter le tableau$extra_header . Les paramètres du tableau sont vérifiés par rapport à la RFC 2822. Format du tableau : php $extra_headers = [ 'Header-Name' => 'Header value', 'Multiple' => ['Un en-tête', 'Un autre en-tête'], 'Multiline' = " FirstLinern SecondLine", ];

    • Lorsqu'un paramètre non valide est passé, count() La fonction lancera un avertissement.

    • Dans l'ordre des octets big-endian et small-endian, pack() et unpack() prend en charge les types float et double.

    • number_format()La fonction garantira que la valeur zéro ne contient pas de signe négatif.

    XML

    • utf8_encode Les fonctions () et utf8_decode() ont été déplacées vers l'extension standard sous forme de chaînes.

    6. Nouvelles fonctions

    Core

    • Ajout de stream_istty().

    • Ajout de sapi_windows_vt100_support().

    DOM

    • DomNodeList implémente Countable et ajoute DomNodeList::count().

    • DOMNamedNodeMap implémente Countable, en ajoutant DOMNamedNodeMap::count().

    FTP

    • Ajouté ftp_append().

    GD

    • Ajouté imagesetclip() et imagegetclip().

    • Ajout de imageopenpolygon().

    • Ajout de imageresolution().

    • Ajout de imagecreatefrombmp() et imagebmp( ) .

    Hash

    • Ajouté hash_hmac_algos().

    Mbstring

    • ajouté mb_chr() et mb_ord().

    • Ajout de mb_scrub.

    OCI8

    • Ajouté Ajout de la prise en charge de oci_register_taf_callback() et oci_unregister_taf_callback() pour le basculement transparent des applications (TAF) des bases de données Oracle.

    Prises

    • ajoutées socket_addrinfo_lookup(), socket_addrinfo_connect(), socket_addrinfo_bind() et socket_addrinfo_explain().

    SPL

    • Ajouté spl_object_id().

    7. Nouvelles classes et interfaces

    8. extensions et SAPI >L'extension mcrypt obsolète a été déplacée vers PECL.

    libmcrypt n'a pas été maintenu depuis 2007 et l'utilisation continue de cette extension n'est pas recommandée.

    • 9. Autres modifications apportées aux extensions

    • EXIF

    Ajout de la prise en charge des balises exif pour les formats suivants : Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, Kyocera, Ricoh et Epson.

    exif_read_data()

      et
    • exif_t ​​​​humbnail() Prend en charge le passage de flux comme premier paramètre.

    • GDDéplacer En plus de l'option de configuration

    • --enable-gd-native-ttf

    .

    • imagegd()Stocke l'image TrueColor en tant qu'image TrueColor, remplaçant la conversion précédente en plaque de correction des couleurs . Lorsqu'il est compilé avec system libgd,

    • mageantialias()
    • est également pris en charge.

      Mbstring
    • mb_check_encoding ()

    • accepte un argument de tableau et vérifie récursivement ses clés et ses valeurs.

      mb_convert_encoding()
    • Accepte un paramètre de tableau, l'encodage de sa valeur peut être converti de manière récursive.

    PDO_OCI

    • --avec-pdo-oci La syntaxe de configuration de n'est plus disponible pour les clients Oracle. Utilisez

      sqlite3_prepare_v2()
    et

    sqlite3_close_v2() pour remplacer leurs fonctions précédentes.

    • 10. Nouvelles constantes globalesCore

    PHP_FLOAT_DIG

    PHP_FLOAT_EPSILON

    • PHP_FLOAT_MIN

      PHP_FLOAT_MAX
    • PHP_OS_FAMILY
    • Fileinfo
    • FILEINFO_EXTENSION

    GD

    • IMG_EFFECT_MULTIPLY

    IMG_BMP

    • PCRE

    • PREG_UNMATCHED_AS_NULL

    Standard :

    • PASSWORD_ARGON2_DEFAULT_MEMORY_COST

    PASSWORD_ARGON2_DEFAULT_TIME_COST

    • PASSWORD_ARGON2_DEFAULT_THREADS

      PASSWORD_ARGON2I
    • 11. dans la gestion des fichiers INI
    • sql.safe_mode

    Cette option INI a été supprimée.

    realpath_cache_size

    • Par défaut C'est 4096k.

    opcache.fast_shutdown

    • Cette option INI a été supprimée. Une variante de gestion fast_shutdown a été intégrée au noyau PHP et sera activée par défaut dans les environnements de production.

    12. Prise en charge de Windows

    • Prend en charge le mode console VT100.

    13.Autres changements

    • Système de compilation

    La version minimale prise en charge d'autoconf est 2.64.

    Recommandations associées : Comment installer IIS, MySQ, nginx, php7.1.7 sous Win10 ?

    • Introduction aux nouvelles fonctionnalités de PHP7Explication détaillée de la clé pour doubler les performances de PHP7

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn