Rendre dynamique le nom de la classe parente dont on hérite
Posté : 12 nov. 2010, 16:27
Bonjour
J'ai un pb simple à décrire, et pourtant je ne parviens pas à trouver un palliatif efficace.
J'aurais besoin de pouvoir déterminer dynamiquement dans une classe le nom de la classe parente dont je veux hériter.
Par exemple une classe voiture :
La classe voiture contient des instructions générique (demarrer, stopper, etc), c'est dans la classe Renault que j'ai implémenté les commandes spécifiques aux Renault.
j'ai donc ensuite une classe Peugeot par exemple, qui contient les mêmes noms de methodes que la classe Renault, mais avec les commandes propres aux Peugeot.
Ainsi je voudrais donc, selon un critère exérieur, pouvoir hériter de l'une ou l'autre classe (Peugeot, Renault, etc) dans ma classe Voiture.
Le but est évidemment de pouvoir conserver toujours la même syntaxe d'appel à ma classe Voiture et ses méthodes.
Après avoir cherché sur le net, sauf erreur, PHP ne permet pas de rendre dynamique le "extends ....". Si vous avez une autre solution propre, je suis preneur.
Merci d'avance.
J'ai un pb simple à décrire, et pourtant je ne parviens pas à trouver un palliatif efficace.
J'aurais besoin de pouvoir déterminer dynamiquement dans une classe le nom de la classe parente dont je veux hériter.
Par exemple une classe voiture :
Code : Tout sélectionner
class Voiture extends Renault {
.......
public function demarrer () {
return parent::demarrer();
}
public function stopper() {
return parent::stopper();
}
....
}
j'ai donc ensuite une classe Peugeot par exemple, qui contient les mêmes noms de methodes que la classe Renault, mais avec les commandes propres aux Peugeot.
Ainsi je voudrais donc, selon un critère exérieur, pouvoir hériter de l'une ou l'autre classe (Peugeot, Renault, etc) dans ma classe Voiture.
Le but est évidemment de pouvoir conserver toujours la même syntaxe d'appel à ma classe Voiture et ses méthodes.
Après avoir cherché sur le net, sauf erreur, PHP ne permet pas de rendre dynamique le "extends ....". Si vous avez une autre solution propre, je suis preneur.
Merci d'avance.