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

Langage PHP Discussion :

Heritage de plusieur classes


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Heritage de plusieur classes
    Bonjour tout le monde et joyeux noel !

    J'aimerais savoir (si c'est possible) comment une classes pourrait hériter de deux autres classes.
    voici ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class une {
     
    }
    class deux {
     
    }
    class finale {
     
    }
    Si je veux heriter de la premiere ou de la deuxieme pas de probleme.
    (class finale extends une)
    Mais moi je voudrais bien hériter des deux classes !
    Et c'est là que je bloque...
    Si vous pouvez m'aider, ca me ferait bien plaisir
    Je cherche bien sur une methode differente de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class une {
     
    }
    class deux extends une {
     
    }
    class finale extends deux {
     
    }
    (qui, je crois, fonctionne sans probleme mais qui ne m'arrange pas du tout)

    Joyeuses fetes
    Merci d'avance

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Salut,
    ce que tu essaies de faire s'appelle l'héritage multiple.
    Je ne pense pas que ce soit possible en PHP.
    Il me semble que seul C++ autorise.
    Java par exemple, ne l'autorise pas.
    D'ailleurs, cela n'a rien a voir avec ce que tu proposes dans ta dernière solution, qui est tout simplement de l'héritage simple.

    Il me semble que tu a des soucis au niveau de la conception.
    Peux-tu nous dire exactement quels sont tes objets ?
    Peut-être qu'on pourra te conseiller sur la conception.
    a+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Ok merci c'est tout ce que je voulai savoir.
    En fait j'ai une classe de gestion de fichier et dossier.
    Et je separe les script de l'affichage
    ce qui donne:

    1 classe script_fichier
    1 classe script_dossier
    1 classe gestion_fichier_dossier

    et la derniere classe nécéssite les deux autres classes.
    Mais je fais faire avec
    script_fichier::function

    au lieu d'utiliser directement le nom de la fonction.
    Me debrouille tres bien sans mais ca aurait été plus propre (et encore ) de faire avec un heritage multiple. (certaine fonction devront etre public au lieu d'etre protected, ca sera le seul truc qui me derange ;-) )
    Merci pour ton aide

  4. #4
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Je n'ai pas totu compris, mais conceptuellement,
    le fichier pourrait être ton objet de base.
    Un dossier pourrait être vu comme un fichier (héritage) contenant 0 ou plusieurs fichiers (fichier sou dossiers).

    En espérant que tu auras trouvé ta réponse.
    a+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Excuse moi je me suis surement mal exprimé.

    En fait je crée une classe qui va gérer des dossiers et des fichiers.
    Pour ce j'ai créé une classe qui va gérer les fichiers et une autre classe qui gerera les dossiers.
    J'ai une troisieme classe qui sert de "maitre" et qui rassemble et fait les requetes vers les deux autres classes pour afficher les resultats.
    Pas tres simple à expliquer je l'avoue :s

    En gros je sépare le traitement de l'affichage. Un partie se contente de faire les actions, l'autre partie se contente d'afficher le resultat de ces actions.

    Mais j'ai bien trouvé ma réponse.

  6. #6
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Citation Envoyé par JiJiJaco
    En gros je sépare le traitement de l'affichage. Un partie se contente de faire les actions, l'autre partie se contente d'afficher le resultat de ces actions.
    Ah, ok, compris.
    Dans ce cas, en effet, il n'ya aucune relation d'héritage entre les pages d'affichage et les classes "métier", mais donc simplement une relation "d'utilisation".
    a++

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Il y a héritage quand tu peux dire d'un objet qu'il est "une sorte de" l'autre objet.

    Une voiture est une sorte de véhicule...

    Sinon c'est une simple relation qui peut déboucher sur la création d'un attribut.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    La question n'est pas si je dois ou pas heriter d'autres classe ! Pour des raisons de netteté de code j'aurais préféré pouvoir heriter de plusieur classes à la fois. Apparement c'est impossible... tanpis ! J'ai d'autre moyen pour y arriver et j'y arrive tout à fait par ces moyens là mais mon code est un petit peu moin comme j'aurais voulu qu'il soit !

    Merci à tous pour votre aide.
    Joyeuse fetes.

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Le modele objet de php est proche de celui de java, il faut passer par des interfaces

  10. #10
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Dans ton cas JiJiJaco il sera plus simple de faire... quelque chose du genre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    classe fichier
    {
         function fichier()
         {
     
         }
     
         function getType()
         {
     
         }
    }
     
    classe dossier
    {
         function dossier()
         {
     
         }
     
         function getType()
         {
     
         }
    }
     
     
    classe gestion
    {
     
         var $Handle
     
         function gestion($type = 'fichier')
         {
            $this->Handle = new $type();
            $this->Handle->getType();
         }
    }

    Par contre l'inconvénient c'est que tu es obligé d'avoir les même méthodes dans les class "fichier" et "dossier"... tout du moins pour les méthodes que tu utilise dans la class"gestion"... .. .

    @ tchaOo°

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    C'est presque comme ca que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    class fichier {
    function test () {
     
    }
    }
    class dossier {
    function test () {
     
    }
    }
    class gestion {
    if(fichier::test()) {
     
    }else if (dossier::test()) {
     
    }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/08/2008, 00h05
  2. [css] plusieurs classes appellées? comment ça marche
    Par luta dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/11/2005, 00h20
  3. Utilisation de variables dans plusieurs classes
    Par dedeloux dans le forum Langage
    Réponses: 3
    Dernier message: 20/07/2005, 17h25
  4. [Servlet] Utilisation de plusieurs classes
    Par hedgehog dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/05/2005, 09h43
  5. [heritage] etendre une classe interne en dehors du package
    Par ChristopheH dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2004, 14h15

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