Maison  >  Article  >  PHP 7.4 devrait sortir en décembre 2019

PHP 7.4 devrait sortir en décembre 2019

藏色散人
藏色散人original
2019-03-27 11:33:306484parcourir

PHP 7.4 pourrait sortir en décembre 2019. Cette page sera mise à jour régulièrement.

<strong>Preloading</strong>préchargement rfc

Preloading (préchargement) est un ajout incroyable au noyau PHP, il peut apporter quelques améliorations majeures des performances.

En bref : si vous utilisez un framework aujourd'hui, ses fichiers doivent être chargés et recompilés à chaque requête. Le préchargement permet au serveur de charger les fichiers PHP en mémoire au démarrage et de les rendre disponibles en permanence pour toutes les requêtes ultérieures.

L'augmentation des performances a bien sûr un prix : si la source des fichiers préchargés change, le serveur doit être redémarré.

<code><strong>Typed properties</strong>Propriétés typées rfc

Les variables de classe peuvent être des indices de type :
class A
{
    public string $name;
    
    public Foo $foo;
}

Mise à jour : les propriétés typées ont été fusionnées jusqu'à présent, les confirmant pour PHP 7.4.

<strong>Improved type variance</strong><strong>Variation de type améliorée</strong>(variance de type améliorée) J'ai déjà écrit sur le système de types de PHP, donc c'est agréable de voir quelques améliorations venir au noyau PHP.

Les différences de types sont un sujet digne de son propre article de blog

En bref : vous pourrez utiliser les

types de retour

covariant

et paramètre.
class ParentType {}
class ChildType extends ParentType {}

class A
{
    public function covariantReturnTypes(): ParentType
    { /* … */ }
}

class B extends A
{
    public function covariantReturnTypes(): ChildType
    { /* … */ }
}

contravariantMise à jour : la RFC est actuellement en phase de vote, mais il semble qu'elle sera adoptée sans aucun problème.

class A
{
    public function contraVariantArguments(ChildType $type)
    { /* … */ }
}

class B extends A
{
    public function contraVariantArguments(ParentType $type)
    { /* … */ }
}
<p>Interface de fonction étrangère</p>

(Interface de fonction étrangère)<strong>Foreign Function Interface</strong> rfcInterface de fonction étrangère, FFI, en abrégé, permet d'appeler du code C depuis l'espace utilisateur. Cela signifie que les extensions PHP peuvent être écrites en PHP pur.

Il est important de noter qu’il s’agit d’un sujet complexe. Vous avez toujours besoin de connaissances en C pour utiliser correctement cette fonctionnalité.

Null

<strong>Null</strong>Opérateur d'affectation de fusion rfc

Ne fait pas ça :

$data[&#39;date&#39;] = $data[&#39;date&#39;] ?? new DateTime();
Vous pouvez faire ceci :

$data[&#39;date&#39;] ??= new DateTime();
Mise à jour : Cette fonctionnalité est désormais fusionnée dans PHP 7.4.

Sérialisation d'objets personnalisés rfc

Cette RFC ajoute deux nouvelles méthodes magiques :

et __serialize. Les différences entre ces méthodes et les méthodes __unserialize et __sleep sont discutées dans la RFC. __wakeup

Mise à jour : RFC passée. Cette fonctionnalité sera ajoutée dans PHP 7.4.

<p>Plus de marges étroites<code><strong>No more narrow margins</strong>

rfc

Techniquement, ce n'est pas un produit lié à PHP 7.4 Mis à jour, mais c'est définitivement mérite d'être mentionné. Les règles de vote des RFC ont changé : elles nécessitent toujours une majorité des 2/3 pour être adoptées.

<code><strong>Reflection for references</strong> Réflexion pour les références rfc

Les bibliothèques comme le dumper var de Symfony s'appuient fortement sur Utilisez l'API de réflexion pour vider de manière fiable variables. Auparavant, il n'existait pas de support de réflexion approprié pour les références, ce qui obligeait ces bibliothèques à s'appuyer sur des hacks pour détecter les références.

ReflectionReferencePHP 7.4 a ajouté la classe

pour résoudre ce problème.

Mise à jour : RFC passée, modifications confirmées pour PHP 7.4.

mb_str_split  Ajout de rfc

Cette fonction fournit la même fonctionnalité que str_split, mais sur des chaînes multi-octets.

ext-hashToujours activé rfc

Comme le titre l'indique, cette extension est désormais disponible en permanence dans toutes les installations PHP.

PEARNon activé par défaut

Puisque PEAR n'est plus activement maintenu, l'équipe principale a décidé de supprimer son installation par défaut avec PHP 7.4.

HashingPassword Hash () Registre rfc

modifie en interne la façon dont la bibliothèque de hachage est utilisée, de sorte que les utilisateurs peuvent les utiliser plus facilement.

OBSERVÉ<strong>ext / wwdx</strong> <a href="https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx" target="_blank">ext/wwdx</a>

rfc

Ce format d'échange de données n'a jamais été disponible Standardisées, ses extensions sont désormais obsolètes.

Mise à niveau des modifications rétrocompatibles

Lors de la mise à niveau d'une version PHP, vous devez toujours consulter la

Documentation complète de mise à niveau

.

Voici quelques-uns des changements rétrocompatibles mis en évidence : parent::

• Le référencement dans une classe sans parent générera une erreur de compilation au lieu d'une erreur d'exécution.

• L'appel de var_dump sur une instance DateTime ou datetimevariable ne laissera plus de propriétés accessibles sur l'objet.

openssl_random_pseudo_bytes lèvera une exception en cas d'erreur.

• Tenter de sérialiser une instance PDO ou PDOStatement générera une exception au lieu de PDOException.

• L'appel de ArrayObject sur une instance de get_object_vars() renverra les propriétés du ArrayObject lui-même, plutôt que la valeur du tableau ou de l'objet encapsulé. Notez que les conversions (de tableau) ne sont pas affectées.

Traduit de : https://stitcher.io/blog/new-in-php-74#reflection-for-references-rfc

Recommandations associées :

La différence de sécurité entre PHP7 et PHP5 (exemple)

Changements apportés par l'arbre de syntaxe abstraite (AST) de PHP7

Principe d'exécution du langage PHP7 (analyse du code source 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