Le problème que j'ai trouvé avec php, c'est que le modèle objet est (ou donne l'impression) d'être une couche rajoutée sur une base fonctionnelle.
Selon moi c'est clairement une couche rajoutée à l'arrache par dessus ; il n'y a qu'à voir tous les problèmes d'implémentations (mais d'après la doc, c'est pas des bugs, c'est des *features*), par exemple :
- Impossible de dériver une méthode statique (parceque pas de late static binding), ce qui supprime un paquet de possibilités de conception objet
- $this qui change quand ça lui plait (dans certains cas, quand on appelle une méthode d'une classe A à partir d'une méthode d'une classe B, $this dans la classe A pointe sur... B)
- $this qui n'est rien d'autre qu'une variable vaguement protégée : si on essaye de l'assigner directement ($this = 'toto') on obtient une erreur, par contre il est possible de la modifier en passant par une référence, ou avec certains fonctions comme extract...
[^] # Re: mouais
Posté par cgo2 . En réponse à la dépêche Zend Framework 1.0.0 : PHP à la suite de Ruby on Rail. Évalué à 6.
Selon moi c'est clairement une couche rajoutée à l'arrache par dessus ; il n'y a qu'à voir tous les problèmes d'implémentations (mais d'après la doc, c'est pas des bugs, c'est des *features*), par exemple :
- Impossible de dériver une méthode statique (parceque pas de late static binding), ce qui supprime un paquet de possibilités de conception objet
- $this qui change quand ça lui plait (dans certains cas, quand on appelle une méthode d'une classe A à partir d'une méthode d'une classe B, $this dans la classe A pointe sur... B)
- $this qui n'est rien d'autre qu'une variable vaguement protégée : si on essaye de l'assigner directement ($this = 'toto') on obtient une erreur, par contre il est possible de la modifier en passant par une référence, ou avec certains fonctions comme extract...
Bref, c'est pas encore au point.