Aller au menu - Aller au contenu

PHP 5.3 : dernière étape avant PHP 6

Revenir à la liste des news
Participer à la discussion

Image

Informations

Contributeur(s) : Akushiro, Barti, BlackCoyote, ~Electro, giliam, Greyae, linkboss, Lordgas, Nanocom, ProgVal, S0pra, Savageman, scientifix94, Talus, Tot, vincent1870, waaaou, Whitecoyote, Xhtml_boys, zingwai et zisworg
Publié : le 12/06/2009 à 17:44:53
Catégorie : Programmation
Visualisations : 10 008

Licence : Creative Commons BY SA

PHP 5.3 : dernière étape avant PHP 6

Image utilisateur
Elle est bientôt là : après plus de 10 mois d'attente (PHP 5.3 alpha 1 est sorti le 1er août 2008), la version finale de PHP 5.3 va finalement pointer le bout de son nez le 25 juin 2009 ! La RC3, étant candidate à la « Gold Release Candidate » (qui précède généralement la version finale), vient d'être publiée. L'attente aura été longue, mais les modifications apportées sont nombreuses et de taille, à tel point que cette version devrait être la dernière version majeure de PHP 5 avant PHP 6 (PHP 5.4 pourrait sortir, mais ce serait seulement après PHP 6). Il faut savoir que cette version est un avant-goût de PHP 6 dont elle hérite la plupart de ses nouvelles fonctionnalités, et certaines étant attendues depuis un certain temps.

Quoi de neuf ?


Les espaces de noms


Appelés "namespace" en anglais, c'est LA modification majeure qui a pris du temps. À l'instar du langage Java ou C++, les espaces de noms permettent de classer vos fonctions et / ou classes dans des ensembles, qui sont en fait une sorte de préfixe pour toutes vos variables / fonctions / classes. Toutes les fonctions natives de PHP seront placées dans l'espace de nom global. Vous pourrez créer vos propres espaces de noms pour vos fonctions, classes et variables personnalisées, sans interférer avec des noms déjà existants qui sont utilisés par d'autres librairies (et qui sont dans un autre espace de noms). ;)
Les espaces de noms aident à organiser le code et favorisent la modularité des développements lorsqu'ils sont utilisés à bon escient. Il en découle une maintenance et une réutilisation plus facile de codes provenant de sources différentes. Lire la doc sur PHP.net.

Code : PHP - Définition d'une fonction dans un espace de nom particulier
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
namespace A\B\C;

/* Cette fonction est A\B\C\fopen */
function fopen() { 
     /* ... */
     $f = \fopen(...); // appel à fopen global
     return $f;
} 
?>


Les fermetures, ou fonctions anonymes.


Appelées « closure » ou « lambda functions » en anglais, elles permettraient de définir des fonctions sans leur donner de nom. Par exemple, une variable pourra contenir une fonction et on pourra l'utiliser en appelant la variable avec les arguments correspondants ou bien encore comme callback d'une autre fonction. C'est en quelque sorte un remplacement de la fonction create_function(), qui nécessite un peu de gymnastique à l'utilisation. Voir l'exemple sur PHP.net.

Code : PHP
1
2
3
4
5
<?php
$afficher = function ($chaine) {
    echo htmlspecialchars($chaine);
}
$afficher('<script>alert("Tout va bien.");</script>');


Un pilote MySQL natif


Ce nouveau pilote, appelé MySQLnd pour MySQL native driver, a été conçu spécialement pour PHP. Il est inclus dans le Zend Engine et utilise son gestionnaire de mémoire. En outre la nouvelle librairie est plus rapide, car elle n'a pas besoin de copier le résultat de votre fetch() dans une variable PHP : elle utilise directement le jeu de données stocké en mémoire. Du côté de l'utilisateur, ça ne change rien : vous continuerez à utiliser MySQLi ou PDO. :) Ce sont ces 2 librairies qui vont utiliser le pilote MySQLnd au lieu de l'ancien pilote MySQL. Enfin, le pilote MySQLnd est livré sous licence PHP, ce qui permet un support natif de MySQL par PHP.
En savoir plus sur le pilote mysqlnd.

Des améliorations du php.ini


php.ini est le fichier de configuration de PHP. Il a été rendu plus flexible par l'ajout de sections spécifiques à un domaine ou à un dossier local. Les directives présentes dans ces sections ne seront pas modifiables par des fichiers INI utilisateurs (par exemple via .htaccess) ni pendant l'exécution. Ça peut être un moyen sûr de ne pas afficher les erreurs dans un environnement de production.

Code : Apache - Activation de l'affichage des erreurs uniquement sur le serveur de développement
1
2
3
[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On


Autres améliorations

  • Apparition de la méthode magique __callStatic(), similaire à __call() mais pour les méthodes statiques.
  • Ajout d'un ramasse-miettes (garbage collector) pour détecter les références croisées et les libérer (non activé par défaut, nécessite une option de configuration).
  • Meilleur support de Windows, notamment en ce qui concerne les fonctions du système de fichiers. La version minimale de Windows est désormais 2000 / XP, les anciennes versions (98, ME, NT 4) ne sont plus supportées.
  • Ajout des librairies intl et sqlite3.
  • L'extension PHAR passe dans le cœur de PHP, et quitte donc le dépôt PECL. Pour son utilisation, plus d'informations dans la doc.
  • Ajout des constantes __DIR__ et __NAMESPACE__
  • Les arguments devant être passés par références sont désormais positionnés à NULL lorsqu'ils sont passés par valeur / copie, accompagnés d'une erreur de niveau WARNING.
  • LSB : Late state binding ou résolution statique à la volée : le mot-clé static:: référencera la classe qui est appelée durant l'exécution et non pas la classe courante comme le fait self::
  • La syntaxe NOWDOC : elle est au type de syntaxe HEREDOC ce que sont les apostrophes (') aux doubles quotes (").
  • L'opérateur ternaire ?: est étendu. Son utilisation n'autorisait que <?php condition ? valeur_si_vrai : valeur_si_faux , mais on utilisait bien souvent : <?php ma_valeur ? ma_valeur : autre_valeur . Cette dernière commande pourra désormais être abrégée en : <?php ma_valeur ?: autre_valeur .
  • Ajout du niveau d'erreur E_DEPRECATED, généré dans le cas d'utilisation d'une syntaxe, d'une fonction, d'une classe, d'une méthode (etc.) qui est dépréciée. Par exemple, les fonctions utilisant les expressions régulières « POSIX » (ereg_*) ou bien les configurations comme safe_mode, magic_quotes_*, etc. sont dépréciées.
  • PHP supportera maintenant le système des labels et l'instruction goto, qui permettent de se rendre à un autre endroit du programme.
  • Ajout de la méthode magique __invoke() : vous pourrez désormais appeler vos objets comme des fonctions.

    Code : PHP
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    class MaClasse {
        public function __invoke() {
            echo 'Je suis appelé comme une fonction !';
        }
    }
    $o = new MaClasse;
    $o(); // Affichera "Je suis appelé comme une fonction !"
    


Et PHP 6 dans tout ça ?



En plus de cette liste non négligeable de nouveautés qui seront présentes dans PHP 5.3, la sortie de PHP 6 ajoutera aussi de nombreuses fonctionnalités. Ainsi, en voici quelques unes :
  • Support de l'Unicode : étant donné le fait qu'il y eut et qu'il y a encore de nombreux problèmes liés à l'encodage des fichiers et des informations des flux, un des buts de PHP 6 est que l'Unicode soit totalement supporté. Vous trouverez ici une liste des fonctions modifiées pour supporter totalement l'Unicode.
  • Configurations de « sécurité » supprimées : des fonctionnalités comme register_globals (déjà désactivées depuis PHP 4.2.0 mais toujours existantes !), safe_mode et magic_quotes vont être définitivement supprimées à partir de PHP 6.0
  • Extensions par défaut enlevées : quelques fonctionnalités incluses par défaut lors du téléchargement de PHP seront enlevées et transférées vers PECL car peu utilisées et modifiées. Entre autres, les fonctions marquées dans 5.3 comme étant dépréciées, comme les expressions régulières POSIX.


La liste officielle des changements est disponible sur le site de PHP.

144 Participations

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  3  4  5  Suivante
Pseudo Discussion
2 visiteurs sur cette news (0 membre et 2 anonymes)
Page 1  2  3  4  5  Suivante
Hors ligne tasmi # Posté le 12/06/2009 à 17:46:20
Avatar

Ville : Toulouse
Pays : France métropolitaine

Super ;)

Image utilisateur
 
Hors ligne Takeo92 # Posté le 12/06/2009 à 17:49:43
GRENOBLE e BASTA !!
Avatar

ralalala le foutage de gueule, tasmi, t'as même pas lu la news, seulement pressé d'aller foutre le premier commentaire.

en tous cas, si onn lit, on remarque la belle bourde :

Publier cette news le jeudi 11 juin (cf. l'introduction).

:)
bravo!
Hors ligne zeppo4268 # Posté le 12/06/2009 à 17:50:25
Avatar

Et bien que de changement, j'ai hâte de tester tout ça :)
Le changement dans php.ini va m'être particulièrement utile... enfin de toute façon depuis le temps qu'on attends une MAJ, vivement php6...

Un vieux de la vielle.
 
Hors ligne freespeaker # Posté le 12/06/2009 à 17:53:03
Groupe : Bannis

super cool cette news !
 
Hors ligne vyk12 # Posté le 12/06/2009 à 17:53:27
There is no spoon
Avatar
Groupe : Anciens

Super ! :)
 
Hors ligne Kovacou' # Posté le 12/06/2009 à 17:54:58
** Tortoise POWER **
Avatar

Ville : Lorgues
Pays : France métropolitaine
Études : IUT Nice

Que du bonheur :)

Image utilisateur

[PHP] SimplePHP : FrameWork en développement !
[PHP] www.kovacou.fr passe en WebOs !
[Etude] Université Sophia-Antipolis: DUT Informatique.

 
Hors ligne Talus # Posté le 12/06/2009 à 17:55:08
People are strange
Avatar
Validateurs
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : EFREI

Enfin, "vivement", c'est vite dit. Ca n'en est meme pas à l'alpha, alors sois pas pressé. :p
 
Hors ligne neamar # Posté le 12/06/2009 à 17:56:48
Just know the rules
Avatar
Flux RSS

Études : INSA Lyon

J'avais lu cette news au tout début de sa rédaction, c'est la première fois que je vois la différence entre version "alpha" et version finale. Du bon boulot !

Le problème (comme souvent avec PHP), c'est qu'il va encore falloir patienter pour que les hébergeurs appliquent cette mise à jour...


De toute façon personne ne lit les signatures. Ah si toi ? Bon bah personne d'autre que toi alors ;) .
 
Hors ligne X.Lewandowski # Posté le 12/06/2009 à 17:57:00

Oh My GOOD, la fonction invoke() ! Oh yeah !

x6 Vaisseaux en LEGO : « http://pio154.perso.sfr.fr/ »
 
Hors ligne Sebastien XD # Posté le 12/06/2009 à 17:58:14
Avatar

vivement la sortie pour tester tout ça!

De Plume En Plume

De Plume en Plume est une application épistolaire, elle Offre l’opportunité aux Auteurs de Nouvelles ou Romans d’y publier leurs œuvres. Cette tribune leur permettra d’être lus et le cas échéant de promouvoir leurs écrits qu’ils soient ou non autoédités. Saisissez la plume au vol et venez publier pour élargir votre public et communauté de lecteurs.

De Plume en Plume rassemble également les auteurs et narrateurs qui souhaitent participer à l’écriture d’un e-roman. Entrez, lisez, prenez la plume en proposant votre suite de l’histoire en cours ou un début d’histoire à poursuivre… Une chorale de mots où tous les choristes sont les bienvenus !

 
Hors ligne simmstein # Posté le 12/06/2009 à 17:58:28
Avatar

je sens déjà le bordel dans les scripts avec les fonctions anonymes...
 
Hors ligne Ze@d # Posté le 12/06/2009 à 17:58:52
|\/|00
Avatar
Groupe : Anciens

3 news dans la même journée ! :-°

On bat des reccords :soleil:


Sinon, très bonne news ^^

Ex - Image utilisateur
 
Hors ligne tasmi # Posté le 12/06/2009 à 18:01:32
Avatar

Ville : Toulouse
Pays : France métropolitaine

Bon c'est que je n'ai pas lu la news, mais bon j'étais tellement préssé pour le premier commentaire :p

Image utilisateur
 
Hors ligne Didinho-13 # Posté le 12/06/2009 à 18:01:43
Aye Caramba !!!
Avatar

Ville : Marseille
Pays : France métropolitaine

Vraiment super cette news vivement PHP6 ... :)


 
Hors ligne Galip # Posté le 12/06/2009 à 18:01:47

Enfin, on arrive bientôt à la version 6.

Par contre la syntaxe des namespaces est bizard. Pourquoi ne pas utiliser les opérateurs de résolution de portée ?

http://www.manuelphp.com/php/language. [...] kudotayim.php

Image utilisateur
 
Hors ligne X.Lewandowski # Posté le 12/06/2009 à 18:02:37

Encore un petit commentaire, trop génial les fonction anonymes hé hé ! Bidouillage accordé :p

x6 Vaisseaux en LEGO : « http://pio154.perso.sfr.fr/ »
 
Hors ligne ~Electro # Posté le 12/06/2009 à 18:05:23
Avatar
Groupe : Anciens

Citation : Ze@d
3 news dans la même journée ! :-°

On bat des records :soleil:

C'est même trop. Pas le temps d'en profiter.
Citation : Ze@d
Sinon, très bonne news ^^

Oui, c'est une bonne nouvelle.

Le seul moyen de se débarrasser d'une tentation, c'est d'y céder.
Oscar Wilde
 
Hors ligne gp2mv3 # Posté le 12/06/2009 à 18:07:49
Avatar

Ville : Glimes
Pays : Belgique
Études : EPL UCL

Cool, j'ai bien envie de la tester sur mon WAMP...
 
Hors ligne toun # Posté le 12/06/2009 à 18:08:48
Avatar
Flux RSS

Ville : Gouesnach
Pays : France métropolitaine

Va falloir mettre a jour le tuto de m@teo21 :)
 
Hors ligne Shackdown # Posté le 12/06/2009 à 18:10:46
Quand on veut, on peut
Avatar

Du très bon boulot ;) Vive php6 :)
 
Hors ligne Ze@d # Posté le 12/06/2009 à 18:12:16
|\/|00
Avatar
Groupe : Anciens

Citation : ~Electro
Citation : Ze@d
3 news dans la même journée ! :-°

On bat des records :soleil:

C'est même trop. Pas le temps d'en profiter.


Oui, c'est dommage, la news précédente est quasiment passée inaperçue.

Ex - Image utilisateur
 
Connecté ShigeruM # Posté le 12/06/2009 à 18:15:30
Do it for the kitties!
Avatar
Modérateurs

Ville : Paris
Pays : France métropolitaine
Études : ESSTIN

Cool pour la news.
Sinon, on s'étonne tous du fait qu'il y ait plusieurs news par jour. En fait c'est normal : les infos arrivent et hop elles sont "newsées". C'est l'ancienne mode (une news tous les 3 ou 4 jours) qui était à revoir. Ce qui a été fait.

Merci aux contributeurs de la news :)
 
Hors ligne Gambit2099 # Posté le 12/06/2009 à 18:18:32
Crow never dies...
Avatar

Études : IIM

Citation : tasmi
Bon c'est que je n'ai pas lu la news, mais bon j'étais tellement préssé pour le premier commentaire :p


Pourquoi t'as gagné quoi ?

Pfff, get a life.
 
Connecté ShigeruM # Posté le 12/06/2009 à 18:21:22
Do it for the kitties!
Avatar
Modérateurs

Ville : Paris
Pays : France métropolitaine
Études : ESSTIN

Citation : Gambit2099
Citation : tasmi
Bon c'est que je n'ai pas lu la news, mais bon j'étais tellement préssé pour le premier commentaire :p


Pourquoi t'as gagné quoi ?

Pfff, get a life.

Il a 10 ans... Soit indulgent.
 
Hors ligne ~Electro # Posté le 12/06/2009 à 18:22:06
Avatar
Groupe : Anciens

Citation : Ze@d
Citation : ~Electro
Citation : Ze@d
3 news dans la même journée ! :-°

On bat des records :soleil:

C'est même trop. Pas le temps d'en profiter.


Oui, c'est dommage, la news précédente est quasiment passée inaperçue.

En fait, on a même plus le temps de s'intéresser aux news tellement il y en a. Depuis 2-3 news, on reste à moins de 50 commentaires. C'est pas énorme pour le SdZ, loin de là. Faudrait revoir le débit.

Le seul moyen de se débarrasser d'une tentation, c'est d'y céder.
Oscar Wilde
 
Hors ligne PouleT # Posté le 12/06/2009 à 18:29:40
Avatar
Groupe : Bannis

Études : HEC Montréal

PHP, ce dinosaure.

« Le SDZ est un site d'idiots, définitivement. »
 
Hors ligne NTag # Posté le 12/06/2009 à 18:30:53
Quand on veut, on peut.
Avatar
Flux RSS

Ville : Saint-paul
Pays : Réunion

Super :) !

Bonne news ;) .

NTag

Mon blog : http://www.ntag.fr
Des projets : http://projets.ntag.fr
Vous voulez savoir qui vous supprime sur Facebook ? Qui supprime ses amis ? Qui quitte Facebook ? >> http://apps.facebook.com/nesontplus_amis

Lorsque l'homme aura coupé le dernier arbre, pollué la dernière goûtte d'eau, tué le dernier animal et pêché le dernier poisson, alors il se rendra compte que l'argent ne se mange pas...
 
Hors ligne Bakakun # Posté le 12/06/2009 à 18:31:46
\o/
Avatar

Ville : Bicqueley
Pays : France métropolitaine
Études : ESIAL

Pas mal ces nouveautés ... mais c'est pas non plus révolutionnaire ...

Image utilisateur
 
Hors ligne Ze@d # Posté le 12/06/2009 à 18:32:46
|\/|00
Avatar
Groupe : Anciens

Citation : ~Electro
Citation : Ze@d
Citation : ~Electro
Citation : Ze@d
3 news dans la même journée ! :-°

On bat des records :soleil:

C'est même trop. Pas le temps d'en profiter.


Oui, c'est dommage, la news précédente est quasiment passée inaperçue.

En fait, on a même plus le temps de s'intéresser aux news tellement il y en a. Depuis 2-3 news, on reste à moins de 50 commentaires. C'est pas énorme pour le SdZ, loin de là. Faudrait revoir le débit.


En même temps, les news précédentes à celle-ci restent relativement visible :p ; mais c'est vrai que limiter le site à par exemple 2 news par jour grand max serait mieux ^^

Mais bon d'un autre côté cela montre que le site est actif :-°

Ex - Image utilisateur
 
Hors ligne cypher666 # Posté le 12/06/2009 à 18:37:12
Heu....
Avatar

Ville : Paris
Pays : France métropolitaine
Études : EPITA

Il faut s'arranger pour sortir sa news en dernier, pour qu'elle soit affichée sur la page d'accueil ^^

Sinon, comment voulez vous empêcher les gens d'écrire des news?
En obligeant les news à sortir minimum toutes les 12h? :)

A vaincre sans périls... On évite les ennuis ;)
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx

Revenir à la liste des news