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 :

[POO] PHP5: comment utiliser un extends ?


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut [POO] PHP5: comment utiliser un extends ?
    Bonjour,

    j'ai 3 fichiers dont voici l'organisation :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    index.php
    class
    |
    |-Pere.class.php
    |-Enfants
          |
          |-Fils.class.php


    index.php contient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    include("class/Enfants/Fils.class.php");
    $fils = new Fils();

    Pere.class.php contient


    Fils.class.php contient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Fils extends Pere
    {
     
    }
    lorsque j'appelle index.php il me dit que la classe Fils ne connait pas la classe Pere. Comment puis-je faire pour lui dire où la trouver ?


    Merci

    PoichOU

  2. #2
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Ben incluant pere.class.php tout simplement ..

  3. #3
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut
    à quel endroit ?

  4. #4
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    N'importe où avant "class Fils extends Pere"

    Généralement, un fichier de classe qui dépend d'une autre à cause de l'héritage sera aussi celui qui inclu le fichier de la classe parent (plutôt que de reporter l'inclusion autre part en amont).

  5. #5
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut
    ok ça marche !

    il fallait que je mette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("class/Pere.class.php");
    et non pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("../Pere.class.php");
    Je pense que c'est dû au fait d'appeler la classe Fils depuis index.php

    Mais si je veux appeler la classe Fils depuis un autre endroit, comment puis-je faire ?

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par PoichOU
    Mais si je veux appeler la classe Fils depuis un autre endroit, comment puis-je faire ?
    Je vois 2 solutions :
    1) Tu inclus ta classe père au début de ton fichier Fils.class.php.
    2) Tu utilises la fonction autoload(), à condition d'avoir une structure normalisée d'arborescence et de noms de classes. Exemple : la classe pere_fils se situe dans le fichier pere/fils/fils.class.php.

  7. #7
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut
    ok je te remercie de l'info

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

Discussions similaires

  1. [PHP 5.4] POO et BDD, comment utiliser un manager dans un objet métier ?
    Par comode dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2014, 12h51
  2. [POO] Comment utiliser la méthode isValid d'un DateField
    Par alicia1984 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 30/07/2008, 14h33
  3. [POO] php5: myException extends exception
    Par ibasticour dans le forum Langage
    Réponses: 5
    Dernier message: 05/05/2008, 16h55
  4. [POO] Comment utiliser __autoload?
    Par paragoge dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 16h47

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