PHP 5 : point de situation
Par Armel FAUVEAU, mercredi 9 avril 2003 à 08:00 :: Lu sur le Web :: #492 :: rss
Depuis quelques semaines, PHP 5 et le futur Zend Engine 2 font beaucoup parler d'eux. De nombreuses actualités, des articles, mais aussi des documents complets sont publiés sur le sujet ici et là. Et si nous devions résumer rapidement les apports majeurs de cette future version, il faudrait évidement souligner la refonte du support objet.
Celle ci permet à PHP 5 de rattraper son retard dans ce domaine comparativement aux autres langages comme C++ ou encore Java. Désormais, les objets sont affectés par références. On notera l'apparition des notions (unifiées) de constructeurs et de destructeurs (__construct() et __destruct()). Mais aussi de visibilité (public/private/protected), concept qui faisait cruellement défaut au support objet de PHP. A noter également la possibilité de définir des variables et des membres statiques (static) ainsi que des constantes (const). Ou encore la déclaration de classes abstraites. La gestion des exceptions (try/throw/catch) devient également une réalité (ne pas en abuser cependant :p). Un certain nombre de méthodes spéciales font aussi leurs apparitions, comme __clone(), __set(), __get() ou encore __call() permettant le clonage d'objets, la surcharge, etc. A noter enfin le concept d'espace de nommage qui sera également supportée et qui permettra de gérer différents scopes.
Même si les grandes lignes du Zend Engine 2 ne datent pas d'hier (nous en parlions déjà sur PHPIndex en...novembre 2001 en mettant en avant un PDF complet sur le sujet), tout ceci a bien été présenté il y a quelques jours par Sterling Hughes lors d'une conférence. Nous vous avions indiqué un lien vers les slides dans le fil d'actu de PHPIndex. Mais je les rappelle ici (avec des pointeurs vers le flux audio au cas ou).
• Introduction to PHP 5 (présentation de Sterling Hughes)
• Flux audio 1
• Flux audio 2
Mais beaucoup d'autres ressources existent. Il semblait intéressant d'en lister les principales :
• The Object Oriented Evolution of PHP (4 février 2003) [PDF]
• PHP 5 Reflection RFC [Texte]
• Zend Engine 2 : Feature Overview and Design [PDF]
A noter également, pour celles et ceux qui en prendront le temps, Zend propose deux iSeminars très intéressants à suivre. Le premier (d'une durée de 76 minutes) présente le futur de PHP et du Zend Engine 2 d'un point de vue théorique. Le second (100 minutes), plus pratique, est axé sur des exemples.
• iSeminar Zend
• The Future of PHP and the Zend Engine 2 (76 minutes)
• Examples and tutorials (100 minutes)
Ces iSeminar sont visibles librement. Afin de les visualiser, vous pouvez déployer Interwise Participant Application sur votre poste. Ou bien choisir d'utiliser l'applet Java. Vous aurez alors le défilement des slides et la voix off (de Zeev) comme si vous y étiez (c'est beau la technique :p).
Quelques articles ont été publiés ici et là. En voici quelques uns :
• The OpenEnterprise::PHP 5: Ready For The Enterprise ?
• What to Expect in PHP 5
• The Object-Oriented Evolution of PHP
Quant aux curieux, pensez à fouiller dans les arcanes du CVS et du Snaps de PHP :
• Snapshot PHP 5 (Source mais aussi binaire Win32)
• Zend Engine 2 (révision 1.55 / 7 mars 2003) [Texte]
J'ai pour ma part testé une compilation sous MacOSX du snapshot en date du 9 avril, et je n'ai eu aucun problème.
Pour finir, précisons tout de même que même s'il est énormement question de PHP 5 et du Zend Engine 2 ces derniers temps, la sortie de cette future version n'est pas pour demain pour autant ! Les optimistes peuvent entrevoir une sortie dans le courant de l'été 2003. Pour ma part, je n'envisage rien avant la fin de l'année. Bref, comme souvent, wait and see.







Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.