et puis sinon, perso je concidere dores et deja php comme un language objet. Même s'il ne possede pas tous les outils objets, la volonté y est, et je pense que ca va evoluer dans ce sens.
__________________________
GGrrrrrrrrr.............
On crée une classe dont on ne précise pas une méthode. Cette classe est virtuelle et on ne peut l'instancier. On hérite de cette classe et on précise cette méthode non définie. Plusieurs classes différentes peuvent hériter de la classe de base. C'est un outil redoutablement efficace pour la réutilisation de code.
Je ne sais pas si c'est faisable en php.
__________________________ MXZone 0.2 : AJAX and Web 2.0
Oui MisterV c'est exactement ça ;) sauf qu'en C++ merrheim si on ne spécifie pas =0 à la fin de la méthode, elle est juste virtuelle, mais pas forcément abstraite. En tout cas, en C++, la virtualitée (pas l'abstraction) c'est :
on a une classe A qui définit une méthode affiche() normale et une méthode getNomClasse() virtuelle (mais pas abstraite)
on a une classe B qui hérite de A. Cette classe redéfinit la méthode affiche et la méhtode getNomClasse().
Mettons que la méthode affiche de A renvoi "classe A" et celle de B "classe B", et getNomClasse() renvoi "A" pour la classe A et "B" pour la classe B.
Si on déclare une variable de type A, mais qu'on lui assigne une valeur de type B, par exemple en C++
A variableA;
B variableB;
variableA = variableB;
en php je ne saurais pas dire, car je ne sais pas comment typer un objet. Si on appelle la méthode affiche() de variable A, on devrait obtenir : "classe A" mais si on appelle la méthode getNomClasse(), on devrait obtenir "B". L'abstraction c'est pareil, sauf que comme di merrheim, la méthode abstraite n'as pas de corps (= elle est vide, elle ne fait rien) et la classe B est obligée de la redéfinire. De plus, une classe contenant une ou plusieurs méthode abstraites ne peut être instanciée.
Je savais pas que c'était possible en PHP enfin je ne connais pas beaucoup ce language. Par contre, ce que vous avez dit précedemment, c'est un vrai problème les codes mi-objet/mi-procédural : c'est en général pas très propre, pas très logique, et compliqué à comprendre.
__________________________
Lorsque touts les arbres auront été coupés, Lorsque touts les animaux auront été chassés, Lorsque touts les poissons auront été pêchés;
Alors l'homme découvrira que l'argent ne se mange pas.
------ |_o/e _|a/a---------
Pour moi php5 saura autant objet que java.
c'est à dire que par derrière il fonctionnera en procédural. Mais bon c'est déjà largement suffisant.
Ah si on pouvait faire passer les objets de page en page on ferait des bo match de tennis :)
__________________________
rien ne sert de coder pour coder il suffit de coder à point. La fontaine (ah non c'est pas ça qu'il a dit?)
[quote]Ah si on pouvait faire passer les objets de page en page on ferait des bo match de tennis :)[/quote]
Tu peux, utilise la fonction serialize() (va voir dans un de mes cours POO en PHP j'en parle (le deux je crois).
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
En effet la sérialisation est fort utile, et tous les langages objets digne de ce nom comme le php l'ont.
La méthode sérialize stocke l'instance de la classe dans une chaîne. Après tu peux la passée dans une variable de session et la stockée dans une base de données.
Et bien entendu pour récupèrer l'instance de la classe tu fais un unserialze sur la chaîne.
Enfin va voir dans les cours POO du site c'est très bien expliqué :P:
Personellement je n'utilise presque plus que des classes pour développer en php, ca a révolutionner ma manière de programmer en php. D'ailleurs je suis en train de reprogrammer mon jeu php en utilisant plus de classes.
Et a ce niveau la sérialisation est fort utile pour moi.
__________________________
Webmaster du site : http://www.simasgar.new.fr , jeu de gestion / stratégie en ligne
Ben PHP est résolument objet quoi qu'on en dise ... il ne l'est peut-être pas assez mais je crois que la notion objet de php5 reste adapté à la plupart de sites voir plus (nombres de WM se mette à coder objet pour un oui ou pour un non ).
quoi qu'il arrive avec un peu de reflexion on se sort bien de toutes les situations que l'on pourrait résoudre avec d'autres langages genre c++ pour ne citer que celui là