IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Objets et heritage


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut Objets et heritage
    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.

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Par défaut
    Boonjour,
    Je suppose que l identifiant est unique, pourquoi ne pas verrifier de quel type il est, puis instancier ton objet et verifier par la suite son login avec ta fonction.
    En terme de performance ca doit etre à peut de chose pres la meme.

Discussions similaires

  1. Heritage d'objet (Socket)
    Par hussein47 dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/09/2009, 22h27
  2. [heritage] changement d'objet
    Par okydo dans le forum Hibernate
    Réponses: 4
    Dernier message: 28/05/2008, 11h54
  3. Heritage de modèles d'objets
    Par Pascal22 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/09/2007, 09h33
  4. [C#]Orienté Objet Heritage
    Par Bils dans le forum Windows Forms
    Réponses: 5
    Dernier message: 05/04/2006, 00h34
  5. DB objet sous types heritage
    Par smex dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 15/06/2004, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo