22/11/01
Le moteur Zend 2.0 sera tourné
vers l'Objet
|
Le "Zend engine 1.0" est au coeur de Php4. Repensé et réécrit, ce moteur reste insuffisant au niveau de sa gestion de l'Objet. Zend en est conscient et jette les bases pour sa future version 2.0. |
Même si de nombreuses possibilités existent pour faire
de "l'objet" en Php, il reste aujourd'hui à ce
langage plusieurs lacunes à combler pour parvenir au niveau
d'implémentation Objet d'un langage comme Java par exemple.
Le but ici n'est pas de proposer un système Objet exhaustif
mais d'offrir aux développeurs ce dont ils ont besoin, ce
qu'ils réclament.
Dans un document de 37 pages au format PDF, téléchargeable
sur le site de Zend, les bases de la version 2.0 du "Zend
Engine" sont jetées. Encore susceptibles d'évoluer
car toujours en discussion, celles-ci laissent tout de même
apercevoir un fort intérêt pour l'Objet.
Le principal souhait des développeurs qui s'intéressent
aux possibilités Objet du Php concerne l'instanciation et
la duplication des objets. Dans sa version actuelle le moteur 1.0
de Zend n'offre pas de solutions satisfaisantes dans ce domaine.
Les objets sont en effet trop souvent dupliqués, plutôt
que manipulés par un pointeur unique. La version 2.0 du moteur
prévoit une approche plus cohérente de la gestion
des objets et de leur interaction avec les fonctions.
On note parmi les nouveautés susceptibles d'être adoptées
dans cette version 2.0 :
- Le support du déréférencement d'objets retournés
par des méthodes.
- Une optimisation du clonage d'objets (possibilité d'obtenir
une copie d'un objet sans toutes les propriétés qui
lui sont liées).
- Des destructeurs d'objets.
- La possibilité d'effacer un objet même si des références
pointent encore sur lui.
- Une standardisation dans la déclaration des constructeurs.
- L'héritage multiple (ce point est cependant controversé
dans la liste de discussion car trop complexe et inutile pour certains.
Rappelons par exemple que le pourtant récent
C# n'implémente pas cette possibilité : il s'agit
pour une classe d'hériter de méthodes contenues dans
des classes parentes).
- Des variables "private" (là aussi la présence
de cette fonctionnalité est remise en cause pour la version
2.0 du moteur).
- Des variables n'appartenant qu'à une seule classe.
- Une gestion des exceptions à base de Try / Throw / Catch,
comparable à celle d'un langage comme Java par exemple.
- La surcharge des opérateurs (encore une fois critiquée
pour sa complexité).
- Hors du domaine objet, il est évoqué une syntaxe
spéciale pour gérer les chaînes de caractères
et les distinguer des tableaux.
Même s'il est trop tôt pour évoquer une date
de sortie pour cette nouvelle version, il est dit que ces améliorations
peuvent être implémentées en quelques mois seulement.
Si vous souhaitez en savoir plus sur ces nouveautés, elles
sont évoquées plus en détails dans une "newsletter"
dont les archives sont toujours
disponibles chez Zend.
A noter également la
page principale pour tout ce qui concerne le futur du "Zend
Engine".
Enfin on retiendra qu'afin de rendre le développement de
Php encore plus libre, Zend a récemment modifié
la license de son moteur pour en adopter une de type BSD.
|