Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 18h06   #1
Invité de passage
 
Homme
Inscription : février 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Finlande

Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
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 !
Grotoumaigr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 15h08   #2
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
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).
__________________
Vive les roues en pierre
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h19.


 
 
 
 
Partenaires

Hébergement Web