PHP 5.5 introduit le support des générateurs, du block Finally et de Zend Opcache,
La version finale met fin à la prise en charge de Windows XP

Le , par Hinault Romaric, Responsable Actualités
Après plusieurs mois de développement, la communauté en charge de PHP est fière d’annoncer la sortie de la version 5.5, qui apporte un nombre important de nouvelles fonctionnalités au langage de programmation Web.




La nouveauté tant attendue est l’intégration du mot clé finally. finally permet d'éviter au développeur d'écrire un code de nettoyage lorsqu'une exception non manipulable se produit.

Les développeurs apprécieront la prise en charge des générateurs. Les générateurs sont un moyen simple et puissant de créer des itérateurs. L’introduction des générateurs dans PHP va permettre aux développeurs d’implémenter des itérateurs sans avoir à écrire beaucoup de code.

Le support des générateurs s’accompagne de l’introduction du nouveau mot clé « yield », qui permet d’implémenter un itérateur. Ce mot clé peut être utilisé suivant trois syntaxes différentes (yield, yield $value, yield $key => $value).

Les boucles foreach supportent désormais les listes et les clés non scalaires pour les itérateurs. L’ajout d’array_column permet de retourner une colonne dans un tableau multidimensionnel.

La nouvelle API de hachage des mots de passe permettra aux développeurs et administrateurs de stocker en toute sécurité les mots de passe. En une seule ligne de code, les développeurs pourront générer un mot de passe chiffré en utilisant bcrypt.

$hash = password_hash($password, PASSWORD_DEFAULT);

L’intégration de Zend Opcache extension est également au rendez-vous. Cette fonctionnalité permet de charger plus rapidement les pages PHP en améliorant les performances du bytecode généré par l’interpréteur de code source PHP.

Côté compatibilité, cette version met fin au support de Windows XP et Windows 2003.

Télécharger PHP 5.5

Source : le site du projet

Et vous ?

Que pensez-vous de ces nouveautés ? Laquelle attendiez-vous le plus ?

La fin du support de Windows XP est-elle précoce ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de grunk grunk
http://www.developpez.com
Modérateur
le 21/06/2013 13:35
L'API de mot de passe est réellement intéressante puisqu'elle fournit enfin un moyen robuste et simple de hasher des mdp. On va peut être arriver à bout du md5

Le déférencement des tableau/chaine de caractères est également sympa , mais à utiliser avec parcimonie si on veux pas se retrouver avec un code dégeulasse.

Enfin l'ajout d'un cache d'opcode en standard est un vrai plus !

Les générateurs par contre je vois toujours pas l'intérêt, je suis un peu le truc depuis l'apparition de la RFC et j'ai juste l'impression que c'est là parce ça se fait dans d'autre langage et que c'est la mode.
Si quelqu'un à un cas concret d'utilisation , ou le générateur surpasse les solutions classiques je suis preneur.

Ah ! et pour finir la possibilité de faire if(empty(maFonction())) , ca, ca va changer ma vie ^^ (sous réserve que j'ai le temps de refaire du php >< )
Avatar de alex_vino alex_vino
http://www.developpez.com
Membre Expert
le 21/06/2013 14:11
En tant que développeur ASP.Net ces ajouts devraient etre les bases de ce langage depuis longtemps.
En tout cas cela permettra de développer plus rapidement, plus proprement et éviter quelques erreurs de jadis
Avatar de mawachi76 mawachi76
http://www.developpez.com
Invité de passage
le 21/06/2013 17:26
Citation Envoyé par grunk  Voir le message
Les générateurs par contre je vois toujours pas l'intérêt, je suis un peu le truc depuis l'apparition de la RFC et j'ai juste l'impression que c'est là parce ça se fait dans d'autre langage et que c'est la mode.
Si quelqu'un à un cas concret d'utilisation , ou le générateur surpasse les solutions classiques je suis preneur.

D'après ce que j'ai lu ici :

http://fr2.php.net/manual/fr/languag...s.overview.php

Il semblerait que ce soit une question de gain de mémoire et de temps d'exécution concernant les tableaux à traiter dans des boucles. En effet, un tableau de données hyper gros va prendre beaucoup de place/de temps pour le traiter de façon classique, à savoir :

1. je génère mon tableau hyper gros (conso de mémoire et temps +++)
2. je le passe dans la boucle pour faire le traitement

Le générateur va permettre de traiter le tableau au fur et à mesure qu'il est généré. Du coup pas besoin de stocker toutes les données avant de les traiter : on les génère et on les traite à la volée. A priori ça deviendrait :

1. je génère une ligne de mon tableau
2. je la traite
3. je recommence
Avatar de Gugelhupf Gugelhupf
http://www.developpez.com
Membre Expert
le 21/06/2013 17:57
C'est utile lorsque tu as une méthode qui te retourne un ensemble de valeur.

Par exemple aujourd'hui lorsque tu veux utiliser une méthode qui retourne une liste, tu dois d'abord construire ta liste, puis retourner ta liste pour l'afficher avec un foreach par exemple.

Si tu te sers très souvent de ta liste (par exemple un attribut) ok, par contre si c'est pour un affichage unique, tu auras perdu ton temps à construire la liste dans un premier temps, puis à la faire défiler dans ta boucle pour l'afficher.
Dans ce cas il y a gain de mémoire et gain de temps.
Avatar de cyruss666 cyruss666
http://www.developpez.com
Membre éprouvé
le 21/06/2013 18:30
Bonjour,

une rencontre est organisée chez SUP'Internet par l'AFUP sur le sujet. L'un des release master de PHP 5.5 viendra parler du sujet.

C'est une bonne occasion pour se renseigner et rencontrer la communauté dans une atmosphère agréable.

Il reste très peu de place mais pour les plus réactifs :

http://afup.org/pages/site/?route=re...ration-php-5-5

Cyril PIERRE de GEYER
Avatar de rawsrc rawsrc
http://www.developpez.com
Modérateur
le 22/06/2013 18:18
Pour certains traitements lourds, le yield() va amener énormément de simplification. Pour des questions de dépassement de mémoire, j'ai eu à émuler l'équivalent d'un yield() en PHP 5.3+ et ben je peux vous garantir que c'est moche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$start; 
$end; 
 
$yield = 
    function() use (&$start, &$end) 
    { 
        static $i = -1; 
        return (++$i <= ($end - $start)) 
                   ? $i + $start 
                   : false; 
    }; 
 
$start = 15; 
$end   = 20; 
$data  = array(); 
 
while ($v = $yield()) 
{ 
    $data[] = $v; 
} 
 
// ou  
 
$yield = 
    function($start, $end) 
    { 
        static $i = -1; 
        return (++$i <= ($end - $start)) 
                   ? $i + $start 
                   : false; 
    }; 
 
$data = array(); 
 
while ($v = $yield(15, 20)) 
{ 
    $data[] = $v; 
}
On a l'équivalent d'un foreach() sans la consommation mémoire.

Bref, ça répond au besoin avec les moyens du bord, mais faut avouer que c'est une béquille bien crade...
Avatar de ygyongy ygyongy
http://www.developpez.com
Futur Membre du Club
le 25/06/2013 17:40
On attends surtout et toujours une implémentation complète d'Unicode... sans ce support PHP ne pourra et ne peux plus évoluer.

A tout ceux qui ont fait du traitement de chaîne de caractères un combat!

Avatar de bruneltouopi bruneltouopi
http://www.developpez.com
Membre éclairé
le 27/06/2013 18:51
Un développeur Php m'a fait comprendre hier que du coté Objet.
Php n'a plus rien à envié à JAVA. Et apparemment PHP a même déjà dépassé Java.
Je ne connais pas l'évolution de PHP mais j'etais très sceptique
Avatar de matios matios
http://www.developpez.com
Futur Membre du Club
le 27/06/2013 22:56
Citation Envoyé par ygyongy  Voir le message
On attends surtout et toujours une implémentation complète d'Unicode... sans ce support PHP ne pourra et ne peux plus évoluer.

A tout ceux qui ont fait du traitement de chaîne de caractères un combat!


Python est unicode et pourtant si on fait
Code :
1
2
3
 
>>> len('ééé') 
6
C'est bizarre non

Avec PHP, il suffit de faire
Code :
mb_strlen('ééé');
ce qui donne 3
Avatar de alex_vino alex_vino
http://www.developpez.com
Membre Expert
le 27/06/2013 23:36
Citation Envoyé par matios  Voir le message
Python est unicode et pourtant si on fait
Code :
1
2
3
 
>>> len('ééé') 
6

Comment fais-tu du coup en Python pour parcourir ton tableau de caractere? Dois tu faire des vérifications pour chaque index?

J'ai développé plusieurs sites Web traduits dans plusieurs cultures, a vrai dire l'encodage c'est surtout embettant lors des export/import de données.
Par contre en France beaucoup de sites Web (et parmis les plus utilisés) n'utilisent pas les regles de base de l'encodage, du moins je le remarque tres souvent dans beaucoup de pages.
Si vous etes intéressé je vous conseille de lire cet article: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

Pour les développeurs PHP qui connaissent le .Net le mot-clé yield sera plus que le bienvenu
Offres d'emploi IT
Gestion de projets h/f
Stage
Société Générale - Ile de France - Paris La Défense
Parue le 14/10/2014
Développeur mobile (h/f)
Stage
MCNEXT - Ile de France - Paris (75000)
Parue le 29/09/2014
Développeur androïd ou ios (h/f)
CDI
Florian Mantione Institut - Provence Alpes Côte d'Azur - Marseille (13000)
Parue le 24/09/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula