Bonjour,

Tout d'abord, sachez que ce message est la suite du fil : http://www.developpez.net/forums/d77...e/#post4470100

Le soucis concerne un héritage de login pour deux types d'utilisateurs. les admins, et les utilisateurs. Je vous copie-colle les explications extraites du fil de la rubrique MySQL.

La vraie question, c'est la deuxième citation, la première est l'explication de l'environnement ^^.

Il existe 2 types de membres :
- les administrateurs, qui ont des droits d'administration
- les utilisateurs, dont l'utilité est uniquement qu'ils soient reconnus a chaque visite.

Pour modéliser cet héritage, voici l'état de mes tables (sous MySQL, moteur InnoDB) :

membres
---------------
mailMembre
identifiantMembre
motDePasseMembre

administrateurs (hérite de membres)
-----------------
A_mailMembre
A_idTypeAdministrateur

utilisateurs (hérite de membres)
-----------
U_idMembre
U_idClient
Il existe encore des relations entre les types d'admins, etc. mais je ne les met pas pour ne pas embrouiller l'histoire.

J'exploite ma base avec du PHP. Pour identifier un utilisateur, j'ai deux choix, soit j'ai un panneau de login admin, soit un panneau de login pour les simples utilisateurs (sur des accès bien distincts).

J'aimerai créer un panneau de login pour les 2.
J'ai autant de classes que de tables, donc une classe membres avec les mêmes propriétés, une classe administrateurs, et une classe utilisateurs qui héritent toutes les deux de membres

Au moment du login, je cree une instance membre puis j'appelle sa méthode Membre::verifierLogin(string identifiant,string motDePasse), le soucis, c'est que je ne vais pas pouvoir "transformer" mon objet membre en objet administrateur ou utilisateur. Je vais devoir créer une nouvelle instance dans ma classe membre de l'un ou l'autre en fonction du resultat.

Ce qui fait que dans une classe mère , je reinstancie ses propres enfants, au lieu d'instancier les enfants directement.

S'il n'y a pas de moyen de faire plus propre, je ferai comme ça, c'est pas si terrible, mais si vous avez une idée pour contourner, je suis preneur.
D'avance merci pour vos suggestions.