Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Sortie de PHP 5.5.1

Le , par Hinault Romaric, Responsable .NET
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 mawachi76 mawachi76 - Candidat au Club http://www.developpez.com
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 - Modérateur http://www.developpez.com
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 rawsrc rawsrc - Modérateur http://www.developpez.com
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 : Sélectionner tout
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 - Nouveau membre du Club http://www.developpez.com
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 - Membre confirmé http://www.developpez.com
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 - Nouveau membre du Club http://www.developpez.com
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 : Sélectionner tout
1
2
3
 
>>> len('ééé') 
6
C'est bizarre non

Avec PHP, il suffit de faire
Code : Sélectionner tout
mb_strlen('ééé');
ce qui donne 3
Avatar de alex_vino alex_vino - Membre émérite http://www.developpez.com
le 27/06/2013 à 23:36
Citation Envoyé par matios  Voir le message
Python est unicode et pourtant si on fait
Code : Sélectionner tout
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
Avatar de Aurélien LEQUOY Aurélien LEQUOY - Membre habitué http://www.developpez.com
le 28/06/2013 à 8:55
J'utilise énormément PHP pour faire des batchs d'extraction & alimentation / démons / multithread & multiserver etc...

Et dans certains cas même sans que l'on sache pourquoi (isref == 0 & refcount == 0) la mémoire à tendance à monter très haut sans compter les fuites mémoires toujours présent en 5.4 dans certains cas.

Pour ma part yield va vraiment changer ma vie, et c'est LA fonction que j'attendais avec impatience, ce qui va me permette d'éviter de faire de gros hook bien dégeu comme j'étais obliger de le faire jusqu'à présent !
Avatar de OPi OPi - Membre actif http://www.developpez.com
le 30/06/2013 à 0:29
Citation Envoyé par matios  Voir le message
Python est unicode et pourtant si on fait
Code : Sélectionner tout
1
2
3
 
>>> len('ééé') 
6

En Python 2 il faut préciser que c'est une chaîne Unicode :
Code : Sélectionner tout
1
2
3
 
>>> len(u'ééé') 
3
Avatar de samyBgood samyBgood - Membre à l'essai http://www.developpez.com
le 02/07/2013 à 15:32
Citation Envoyé par bruneltouopi  Voir le message
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

Pas vraiment d'accord.

Le problème principal est que l'on peut coder proprement en PHP, là où l'on doit coder proprement dans d'autre langage. (cast automatique, typage faible, fonction qui peut retourner plusieurs type... etc..)
Avatar de kdmbella kdmbella - Expert éminent http://www.developpez.com
le 19/07/2013 à 14:26
Sortie de PHP 5.5.1

L’équipe de développement du projet PHP vient d’annoncer sur son site la disponibilité immédiate de PHP dans sa version 5.5.1. Il s’agit pour cette version d’une répercussion des bogues déjà identifiés dans la déclinaison 5.3, notamment la correction d’une vingtaine de bogues et de la vulnérabilité de sécurité concernant le parseur XML. Nous avons donc comme améliorations pour cette nouvelle Release :

  • l’autorisation de la compilation de PDO_OCI avec les librairies clientes de Oracle 12c ;
  • l’absence de la page « Man » pour php-cgi ;
  • la levée d’un E_WARNING pour une chaine hexa invalide dans la fonction hex2bin() ;
  • la compatibilité de OPcache avec LiteSpeed SAPI ;
  • la correction du bogue de la fonction strftime() qui tourne une chaîne de caractère de longueur insuffisante pour des locales (multibyte locales) ;
  • l’ajout d’un argument optionnel create_sid() pour les fonctions session_set_save_handler(),SessionHandler et new SessionIdInterface ;
  • etc.


Avec ce nombre élevé de bogues et de vulnérabilités identifiés et corrigés, les développeurs utilisant la branche 5.5 de PHP sont invités à migrer rapidement vers cette nouvelle version.

La liste complète des changements dans cette version est consultable sur ce lien

Pour télécharger : PHP.5.5.1

Source : site officiel du Projet PHP
Offres d'emploi IT
Paris - Développeur PHP
esabora - Ile de France - Paris (75013)
Ingénieur développement web H/F BOURSORAMA
Societe Generale - Ile de France - Boulogne-Billancourt (92100)
Développeur php - h/f
UpSourcing - Ile de France - Paris (75000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique PHP