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] Héritage: caster en classe fille


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut [POO] Héritage: caster en classe fille
    Bonjour,

    j'aurais besoin de votre aide sur une question d'héritage:
    j'ai une classe parent, disons "Article" et des classes filles: "ArticleMagasin", "ArticleEntrepot", ...
    Lorsque je lance une recherche sur un article, j'obtiens donc une liste d'Articles. Puis lorsque je regarde le détail de mon Article, j'arrive sur un écran principal où j'appelle les différentes méthodes de la classe parent (getRefence(), getDescription(), ...) et lorsque je veux aller dans les onglets spécifiques (Entrepôt, Magasin), je voudrais réutiliser mon objet $article et le surcharger avec les attributs et les méthodes de la(les) classe(s) fille(s) sachant que mon Article peut être en magasin et/ou à l'entrepôt et/ou à l'usine.
    Pouvez-vous m'aider. Peut-être ai-je prit une mauvaise voie en faisant de l'héritage !

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    effectivement il y a peut-être un souci avec ton utilisation de l'héritage.
    En théorie, en POO tu devrais récupérer une liste d'"ArticleMagasin", "ArticleEntrepot", ... et non pas une liste d'"Article", mais pas vraiment en PHP (étant donné que tu es limité par la durée des scripts et surtout parce qu'il vaut préserver les ressources serveur). J'imagine que tu fais ça pour limiter les ressources utilisées ?
    Si ta liste contient des objets de type "Article", tu ne pourras pas les downcaster en "ArticleMagasin", etc. étant donné que tu les as créés en tant qu'"Article".
    Donc 2 solutions je crois (j'imagine que tu utilises une BDD ?) :
    1)
    - créer une liste d'Article depuis la BDD
    - au changement d'onglet réinstancier un objet du bon type ArticleMagasin etc. en fonction de l'id de ton Article et donc réinterroger la BDD

    2)
    - créer directement une liste d'ArticleMagasin, etc. depuis la BDD
    - au changement d'onglet sauver ton objet en session ou autre puis le récupérer sur l'autre page

    L'inconvénient de la solution 1 est qu'elle nécessite plusieurs requêtes.
    L'inconvénient de la solution 2 est que tu vas créer tous tes objets spécifiés et donc récupérer des données inutiles pour la première page.
    Personnellement, j'utilise en général la solution 1 (en PHP).

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/07/2010, 16h17
  2. Réponses: 8
    Dernier message: 13/10/2008, 21h26
  3. Réponses: 8
    Dernier message: 09/09/2008, 17h19
  4. [POO] Héritage entre deux classes
    Par Lenaick dans le forum Langage
    Réponses: 5
    Dernier message: 16/10/2007, 10h53
  5. [héritage] requête sur classe fille
    Par Galak extra dans le forum Hibernate
    Réponses: 3
    Dernier message: 25/08/2006, 11h30

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