Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités
    Avatar de Coriolan
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2016
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2016
    Messages : 685
    Points : 18 601
    Points
    18 601

    Par défaut PHP 7.4 devrait être rendu disponible vers la fin de cette année

    PHP 7.4 devrait être rendu disponible vers la fin de cette année
    Voici un aperçu des nouveautés qui pourraient y figurer

    PHP est utilisé par 78,9 % des sites de la toile, ce qui en fait l’un des langages de programmation côté serveur les plus utilisés. En décembre 2018, PHP 7.3 a été rendu disponible en version stable, apportant de nouvelles fonctionnalités et améliorations. Un mois plus tard, et des rapports ont déjà commencé à relayer les nouveautés de PHP 7.4, la prochaine itération du langage.

    PHP 7.4 devrait probablement être rendu disponible en décembre 2019. Alors voici quelques nouveautés qui pourraient faire leur apparition dans la nouvelle version :

    Preloading

    PHP a fait de grands progrès en ajoutant de puissantes fonctionnalités au cours des dernières années. Le moteur de PHP (Zend engine 3) a par été largement réécrit pour être beaucoup plus rapide que les versions précédentes. PHP 7.0 a apporté des gains de performance avec un moteur Zend Engine jusqu'à deux fois plus rapide que dans la version 5.6. La version 7.1.0 du langage de développement Web côté serveur a également suivi avec de nouvelles fonctionnalités et encore des gains de performances : jusqu’à 35 % plus rapide pour les charges de travail avec une utilisation intensive du CPU.

    Une nouvelle fonctionnalité devrait améliorer davantage la performance de PHP. Si vous utilisez un framework, ses fichiers doivent être chargés et recompilés pour chaque requête. Le Preloading permet au serveur de charger les fichiers PHP sur la mémoire au démarrage, et les rendre disponibles en permanence pour toutes les requêtes ultérieures. Seul bémol, si la source des fichiers préchargés change, il faudra redémarrer le serveur.

    Typed properties

    Les variables de classe peuvent être indiquées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class A
    {
        public string $name;
     
        public Foo $foo;
    }
    Variation de type améliorée

    Il sera possible d’utiliser des types de retour covariants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class ParentType {}
    class ChildType extends ParentType {}
     
    class A
    {
        public function covariantReturnTypes(): ParentType
        { /* … */ }
    }
     
    class B extends A
    {
        public function covariantReturnTypes(): ChildType
        { /* … */ }
    }
    et des arguments contravariants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class A
    {
        public function contraVariantArguments(ChildType $type)
        { /* … */ }
    }
     
    class B extends A
    {
        public function contraVariantArguments(ParentType $type)
        { /* … */ }
    }
    Cette proposition est actuellement en phase de vote, mais il apparait qu’elle devrait être approuvée sans soucis.

    Foreign Function Interface

    Foreign Function Interface (FFI) permet de faire appel à du code C à partir de l’espace utilisateur (userland). Cela veut dire que les extensions PHP peuvent être écrites en PHP. Cependant, il faudra maitriser C pour utiliser correctement cette fonctionnalité.

    Null Coalescing Assignment Operator

    Peut-être traduit en : Opérateur d'assignation coalescente nulle, il permet de faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data['date'] ??= new DateTime();
    au lieu de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data['date'] = $data['date'] ?? new DateTime();
    Cependant, le créateur de cette RFC n’a pas été en mesure de finir son implémentation. Il reste à savoir si un membre de l’équipe PHP core sera en mesure de la finir.

    ext-hash toujours activé

    Cette extension est maintenant disponible en permanence dans toutes les installations de PHP.

    Password Hashing Registry (Registre de hachage de mots de passe)

    Modifications internes de la façon d’utilisation des bibliothèques de hachage, de sorte qu'il devient plus facile pour l'utilisateur de les utiliser.

    Source : stitcher

    Et vous ?

    Qu’en pensez-vous ?
    Quelles versions de PHP utilisez-vous ?
    Quelles sont les fonctionnalités que vous appréciez le plus ?

    Voir aussi

    W3Tech : plus de 60 % des sites Web tournent sur PHP 5.x, une version qui ne sera plus supportée après le 31 décembre 2018
    PHP 7.3 est disponible en version stable, un aperçu des nouveautés du langage de programmation côté serveur
    Les benchmarks réalisés sur la dernière préversion de PHP 7.3 sont prometteurs, et la sortie de la version stable se profile à l'horizon
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2003
    Messages
    1 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2003
    Messages : 1 120
    Points : 2 155
    Points
    2 155
    Billets dans le blog
    3

    Par défaut

    Enfin PHP va ressembler à un vrai langage objet... En espérant que ce ne soit pas trop tard, en 2020, vu les améliorations très régulières d'autres langages.

    Petite question : il sera possible de déclarer un type objet comme on le voit dans l'exemple :

    Mais est-ce qu'on pourra déclarer un type comme étant un tableaux d'objets ?
    Par exemple :

    Si j'ai bien compris la liste complète de ce qui sera implémenté est ici :
    https://wiki.php.net/rfc/typed_properties_v2

    Et je ne vois pas d'exemple à ce sujet. A chaque fois c'est un array simple qui est défini.
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  3. #3
    Membre averti
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2012
    Messages : 208
    Points : 395
    Points
    395

    Par défaut

    Citation Envoyé par stailer Voir le message
    Petite question : est-ce qu'on pourra déclarer un type comme étant un tableaux d'objets ?
    Par exemple :

    ça avait été proposé dans une RFC en php5.6 (et rejeté) mais elle n'a pas été remise au planning pour le moment => https://wiki.php.net/rfc/arrayof
    il est possible (avec un bricolage) de typer des tableaux d'objet en paramètre d'une fonction mais il n'est pas possible à ma connaissance de typer le retour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function dates(\DateTime ...$dates) {    //$dates contient un tableau de \DateTime
      }
    n'oubliez pas de voter si le message vous a aidé


  4. #4
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2003
    Messages
    1 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2003
    Messages : 1 120
    Points : 2 155
    Points
    2 155
    Billets dans le blog
    3

    Par défaut

    C'est pas trop mal...

    - S'il y a d'autres paramètres tu dois obligatoirement les mettre en 1er -> bon, pourquoi pas...
    - Chaque élément du tableau est passé comme un paramètre -> franchement pas terrible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dates($maDate1, $maDate2, $maDate3 )
    On gagne un peu en clarté sur la fonction mais l'utilisation on y perd clairement. Je préfère encore utiliser les commentaires de mon EDI qui me donne l'autocomplétion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    /**
     * @param DateTime[] $dates
     * @return DateTime[]
     */
    function dates( $dates) {
     
        return $dates;
    }
     
    $a = new DateTime();
     
    dates([$a, $a, $a]);
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

  5. #5
    Membre averti
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2012
    Messages : 208
    Points : 395
    Points
    395

    Par défaut

    oui c'est ce que je dis c'est du bricolage pour contourner une limitation du langage donc ça a des inconvénients et ça ne peut pas convenir pour tous les usages.
    Perso je n'ai jamais utilisé ce genre de code pour les deux raisons que tu as citées : d'une part l'utilisation de la fonction devient plus compliqué et moins intuitif puisqu'on doit passer les éléments un par un (On peut aussi utiliser l'opérateur de décomposition $foo = dates(...$monTableauDeDates) ce qui rend le code plus lisible mais pas plus logique) et l'autre raison c'est que les IDE gèrent très bien les annotations de type Classe[]
    n'oubliez pas de voter si le message vous a aidé


  6. #6
    Membre confirmé
    Femme Profil pro
    CTO
    Inscrit en
    août 2012
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : CTO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2012
    Messages : 160
    Points : 475
    Points
    475

    Par défaut

    Beau progrès du point de vue du typage des propriété et de la contravariance. Mais perso j'attends surtout l'implémentation des générics.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/06/2013, 21h51
  2. Réponses: 43
    Dernier message: 31/10/2010, 11h50
  3. [PHP-JS] envoyer valeur de page JSP vers page PHP
    Par metatron dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/09/2006, 12h29
  4. [PHP-JS] Passage de paramètre de Javascript vers fonction Php
    Par winnie82 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/07/2006, 11h06
  5. problèmes de pages php suites a une migration de NT vers XP
    Par van fanel dans le forum Fonctions
    Réponses: 2
    Dernier message: 08/12/2005, 06h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo