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] Questions sur mon architecture de boutique


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 11
    Points
    11
    Par défaut [POO] Questions sur mon architecture de boutique
    Bonjour à tous,

    J'aurais besoin de quelques avis sur mon "architecture" OO d'une boutique en ligne que je suis en train de faire.

    Je suis débutant en POO mais bon il faut bien commencer à un moment donc essayez d'être indulgents

    Je suis en train de me pencher pour l'instant sur la gestion du panier et j'aurais une première question.

    Voila pour l'instant où j'en suis au niveau de mes classes :

    Panier empile ProduitPanier extend Produit

    Dans ma classe Produit j'ai des méthodes qui s'appuient sur une table TProduit pour aller chercher des informations dans la base de données
    par exemple getInformationsProduit(), getAttributsProduit()...

    Mon soucis c'est que là dans mon cas de figure vu que pour chaque produit du panier j'ai une instance de classe j'aurais autant de requêtes sql que de produits du panier

    Si par exemple j'ai 5 produits dans mon panier et que je fais 2 requetes par produits ça me fait 10 requetes et ça, ça me gêne un peu...

    Comment feriez vous dans ce cas de figure?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Tu peux simplement tout agréger dans une seule requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $SELECT = "Select id, title, stuff FROM table WHERE table.id IN (1,2,5,9,17)"
     
    $DELETE = "DELETE FROM table WHERE table.id IN (1,2,5,9,17)"
    Cela te permet de limiter les requetes

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Merci cadoudal56 pour ta réponse

    Oui je pensais faire quelque chose comme ça mais mon problème est plutôt comment je dois procéder en OO pour stocker et réutiliser les informations que j'aurais été chercher.

    Donc avec cette solution il faudrait plutôt que se soit mon objet panier qui s'occupe d'aller chercher toutes les informations des produits?

    Par exemple ma classe Panier aurait une méthode getInformationsProduits()
    qui parcourrait la liste de mes objets Produits et qui ferait une requête avec la liste de mes produits en condition?

    Désolé si c'est un peu confus mais tout ceci est tout nouveau pour moi...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Citation Envoyé par kro001 Voir le message
    Bonjour à tous,

    J'aurais besoin de quelques avis sur mon "architecture" OO d'une boutique en ligne que je suis en train de faire.

    Je suis débutant en POO mais bon il faut bien commencer à un moment donc essayez d'être indulgents

    Je suis en train de me pencher pour l'instant sur la gestion du panier et j'aurais une première question.

    Voila pour l'instant où j'en suis au niveau de mes classes :

    Panier empile ProduitPanier extend Produit

    Dans ma classe Produit j'ai des méthodes qui s'appuient sur une table TProduit pour aller chercher des informations dans la base de données
    par exemple getInformationsProduit(), getAttributsProduit()...

    Mon soucis c'est que là dans mon cas de figure vu que pour chaque produit du panier j'ai une instance de classe j'aurais autant de requêtes sql que de produits du panier

    Si par exemple j'ai 5 produits dans mon panier et que je fais 2 requetes par produits ça me fait 10 requetes et ça, ça me gêne un peu...

    Comment feriez vous dans ce cas de figure?

    Merci d'avance pour votre aide.
    Salut,
    je n'ai pas trop de réponses sur ta question. Cependant je souhaitais attirer ton attention sur le choix fait pour implémenter tes lignes articles, ProduitPanier.

    En effet, pour toi ProduitPanier hérite de Produit, donc il ne peut vivre sans.
    Dis comme cela c'est correct.

    Cependant, que se passera t'il le jour où, tu supprimes un produit, tu souhaites accéder à des lignes articles concernant ce produit ?
    Réponse : Problème !
    Problème, car ProduitPanier ne peut vivre sans produit, héritage oblige.

    Tout cela pour en venir au fait, que d'après moi, ProduitPanier est associé à un produit, mais doit pouvoir vivre seul en ayant suffisamment d'informations renseignées. Et donc ne devrait pas en hériter, mais en être composé.

    Fin voila, juste comme cela en passant.

    a plus

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Merci kaymak pour ta réponse je pense que tu as raison car depuis que j'ai créer mon post j'ai avancé un peu et je rencontre quelques difficultés.

    Je m'explique voila a quoi ressemble un produit :

    J'ai un Produit qui est par exemple Un jean :
    Ce produit a un fabricant un prix de base HT ....

    Par contre ce produit peut avoir des Attributs comme par exemple
    La taille, la couleur.

    Le Produit a aussi par conséquent des Options qui seront :
    Taille : 29, 30
    Couleur : Délavé, Brut, Noir

    Mon problème est que quand j'ajoute un produit au panier je n'ajoute pas juste un Jean mais un Jean Taille 29 Couleur Brut

    C'est là qu'au niveau architecture de mes classes que je nage un peu...

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    ben c'est à dire que comme dans la vrai vie le jean bleu taille 29, n'est pas le même produit que le jean bleu taille 31.

    Donc je ne pense pas qu'il faille parler d'un produit jean, option bleu, taille 29.
    Mais plutot, du poduit jean bleu taille 29, variant du produit jean bleu taille 30.

    Tu vois bien dans ces deux énonciations, une différence focndamentale.
    La deuxième, indique qu'il existe deux produits, alors que le premier indique qu'il n'y en à qu'un, ce qui me semble faut.

    fin voila.

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Merci kaymak c'est bien ce que je pense en fait dans ma base j'ai une table supplémentaire que j'ai appelé RéférencesProduits qui représente en gros toutes les combinaisons possibles entre un Produit et ses attributs.

    C'est en fait que je me suis embrouillé tout seul avec mon panier car j'ai des méthodes qui touchent au Produit (Jean) et d'autres qui touchent à la ReferenceProduit (Jean 29 couleur Noir)

    Enfin en tout cas merci beacoup pour votre aide, mais je dois avoué que les débuts sont difficiles..

Discussions similaires

  1. Débutant RCP - Question sur l'architecture
    Par LoloBebop dans le forum Eclipse Platform
    Réponses: 11
    Dernier message: 07/06/2006, 11h35
  2. [POO] question sur les interfaces
    Par root76 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/05/2006, 17h12
  3. Question sur mon formulaire de contact
    Par Analfabete dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2006, 18h12
  4. [POO]Question sur les constructeurs
    Par Burinho dans le forum Langage
    Réponses: 16
    Dernier message: 08/04/2006, 21h56
  5. question sur mon futur processeur
    Par loveflower dans le forum Composants
    Réponses: 13
    Dernier message: 12/01/2006, 00h10

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