Php 5.4 Alpha 1, quand php renait de ces cendres…

Une nouvelle mouture de notre langage de prédilection présente le bout de son nez. Malgré les apparences, il s’agit d’une version en réalité majeure. En effet, la mort de PHP6 il y a plus d’un an pour cause de problème d’intégrations de l’Unicode a chamboulé le planning.

C’est pour cela qu’une version alpha vient d’être mise à disposition sur le SVN de PHP.net.

Les contributeurs ne se sont pas endormis, car plus de 6 000 points ont été modifiés. De nombreuses idées de PHP6 ont été implémentées. Malheureusement, la bonne idée de l’Unicode a été repoussée sans date.

Comment fonctionne PHP ?

PHP est un langage de programmation impérative de type CGI, qui peut être utilisé en procédural ou orienté objet (POO). C’est un langage de haut niveau qui doit être exécuté par une machine spéciale pour fonctionner, généralement un serveur (cette exécution ne peut pas être accomplie par un navigateur, il en est incapable).

Pour que le PHP soit interprété, il faut qu’on lui dise comment ; c’est le rôle du moteur de PHP, appelé Zend Engine.

Ce moteur est écrit en C. C’est le cœur du langage ; c’est en fait lui qui évolue à chaque nouvelle version.

Les nouveautés

Principaux changement apportés

safe_mode, register_globals et register_long_array sont définitivement supprimés de PHP. De quoi ravir les développeurs, qui n’aurons plus à réaliser toute une série de vérifications concernant ces directives de configuration.

Pour le register_globals, on peut dire que c’est une vraie avancée en termes de sécurité, même si depuis de nombreuses versions cette fonction était désactivée par défaut dans le php.ini.

Avec le register_globlals à « ON », on ne faisait pas de différence entre une variable superglobale et une variable « interne » : un vrai problème de sécurité, car on ne savait pas si une variable venait du site — et donc était fiable — ou de l’extérieur, et par conséquent potentiellement dangereuse.

Concernant le safe_mode et register_long_array, la documentation de PHP indique en effet :

Citation : Documentation PHP

Cette fonctionnalité est OBSOLÈTE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l’utiliser.

Les ajouts apportés à cette version

Il est maintenant plus explicite de passer des arguments en références.

Pour rappel, voici comment on passe un argument en référence avec PHP :

Code : PHP – Soumission d’argument sous forme de référence

 <?php 
function foo( & $var){
 $var++; 
} 

function & bar(){ 
$a=5; return $a; 
} 

foo ( bar ()); 
?>

Un passage par référence va modifier la variable inscrite en mémoire par une nouvelle version de cette variable, c’est le & devant $var qui le permet.

Il est aussi possible de faire ceci, actuellement :

 <?php 
myFunction(& $toto); 
?>

Un simple avertissement est généré sous PHP 5.3. Désormais, avec PHP 5.4, le code plante et renvoie une erreur.

Les traits

Une nouvelle fonctionnalité (un conteneur) apparaît également : les traits. C’est un regroupement de méthodes qui peuvent être partagées entre différentes classes (ce qui est différent de l’héritage et des interfaces).

Image utilisateur Plus d’informations sur les traits.

Ajout du support d’Autoconf

GNU Autoconf, livré avec PHP 5.4 dans sa version 6.59, est un outil permettant de générer des scripts shell qui configurent automatiquement les sources d’un logiciel dans l’optique de l’adapter aux systèmes UNIX (Linux, Mac OS X, etc.).

Notez que Autoconf ne fait que configurer : il n’est pas nécessaire aux personnes exécutant le script d’avoir Autoconf installé sur leurs machines.

Image utilisateur Plus d’information sur Autoconf.

Image utilisateur Image utilisateur Description officielle d’Autoconf.

La feuille de route

  • Le 28 juin 2011, la version alpha 1 sera publiée.
  • Le 26 juillet, ce sera au tour de l’alpha 2.
  • La version bêta sera livrée le 23 août.
  • Enfin, la version Relase Candidate n° 1 (RC 1) sera publiée le 20 septembre 2011.
  • Après cela, une version RC sera publiée toutes les deux semaines, jusqu’à la version stable.

Les dates présentées ci-dessus sont cependant susceptible d’être modifiées.

La communauté de PHP

Tout comme la communauté de l’anneau, la communauté de PHP était lancée pour fait de grandes choses car elle était unie. Cependant, des divisions apparaissent régulièrement sur la gouvernance et la prise de décisions.

On peut en gros la diviser en deux groupes : les contributeurs historiques et les nouveaux contributeurs.

Les contributeurs historiques considèrent que l’évolution doit aller vers une stabilisation du langage, une éradication des bugs et une simplification, alors que les autres aimeraient que les nouveautés soient implémentées plus rapidement pour ne pas se retrouver à attendre trop longtemps des fonctionnalités qu’ils jugent essentielles pour programmer avec des méthodes modernes.

La dissolution des développeurs de PHP n’est heureusement pas à l’ordre du jour, mais il manque pourtant un leader.

Rasmus Lerdorf, le créateur de PHP, serait capable de dire où il faut aller, néanmoins, il se contente de prendre le rôle de médiateur. Cette situation a conduit à un drame (la mort de PHP6), de nombreuses leçons doivent donc en être tirées…

Image utilisateur Vous pouvez trouver la liste complète des nouveautés de cette version en vous rendant ici.

Sources

<pre class= »brush:[php] »>

Publié

dans

,

par

Commentaires

3 réponses à “Php 5.4 Alpha 1, quand php renait de ces cendres…”

  1. […] == "undefined"){ addthis_share = [];}C’est toujours Agréable de voir que le langage PHP poursuit son bonhomme de chemin sans prendre de […]

  2. Avatar de Fatiha

    Bonjour,

    Ton article est très intéressant, cela fait bien longtemps que je n’ai pas suivi les évolutions de PHP. La notion de « traits » m’intrigue, je vais jeter un coup d’oeil.

    Merci pour cet article,
    @+
    Fatiha

    1. Avatar de Grand Maître L

      Je te remercie, pour infos, ils ont rajouté un serveur http réservé au développement.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.