Conception class produit

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Conception class produit

par tomypunk » 16 sept. 2007, 09:55

bah ca dépend un peu de ce que tu as d'autre à gérer.. on pourrais très bien envisager une classe Tshirt qui hérite de celle-ci, et qui dispose en plus des deux attributs couleur et taille. Ou tu peux très bien les ajouter directement dans cette classe là, en partant du principe qu'à chaque fois qu'elle est instanciée tu lui donnes une taille et une couleur pouvant être null... Considère donc juste que tous tes produits ont une taille et une couleur et gère l'éventualité ou celles-ci ne sont pas défini :)

Mais ceci dit, un tshirt qui n'a ni taille, ni couleur, à part du fil de pêche à tricoter soi-même, j'vois pas bien à quoi ça peut ressembler ;)
en fait la ou je bloque c'est que pour un même produit je peux avoir plusieurs taille et couleur différente et c'est la que je bloque

je vois pas comment modéliser le fait que si je vend 1 tshirt c'est bien un bleu en S et pas le même produits en jaune et XL ...

je pense peut etre faire un truc du genre :
<?php

class collection_produits{

  $tableau_des_produits[]   //tableau qui contient les produits de la classe produit
}
?>
et une classe produit :
<?php

class produit{
  $nom_produit;
  $desc_produit;
  $taille;
  $couleur;
...
}
et j'instancierai, la classe produit pour chacun des produits que j'ai, mais j'ai un peu peur que ça fasse lourd, parce que si j'ai 1000 fois le même produit je suis obliger de créer 1000 objet de la classe produit

par Ryle » 15 sept. 2007, 23:15

bah ca dépend un peu de ce que tu as d'autre à gérer.. on pourrais très bien envisager une classe Tshirt qui hérite de celle-ci, et qui dispose en plus des deux attributs couleur et taille. Ou tu peux très bien les ajouter directement dans cette classe là, en partant du principe qu'à chaque fois qu'elle est instanciée tu lui donnes une taille et une couleur pouvant être null... Considère donc juste que tous tes produits ont une taille et une couleur et gère l'éventualité ou celles-ci ne sont pas défini :)

Mais ceci dit, un tshirt qui n'a ni taille, ni couleur, à part du fil de pêche à tricoter soi-même, j'vois pas bien à quoi ça peut ressembler ;)

Conception class produit

par tomypunk » 15 sept. 2007, 22:37

Bonjour

je suis actuellement en phase de conception d'un site marchand, qui vendra notamment des tshirts et la ce trouve mon problème.

Alors en BDD j'ai 4 tables pour gérer ça, voila la structure de celle ci :
couleur(id_couleur, libellé_couleur)
taille(id_taille, libellé_taille)
produit(id_produit, nom_produit, desc_produit, prix_produit, nb_produit, nb_produit_vendu, en_vente?)
produit_possede_taille_couleur(id_couleur,id_taille,id_produit, quantité)

donc mon problème c'est comment créer une classe pour gérer ça, sachant que tout les produits n'ont pas forcement une taille ou une couleur.

Pour l'instant j'ai créer une classe qui ressemble a ça, mais je ne peux pas dire par exemple que j'ai vendu un tshirt bleu en S, je ne vois pas trop comment gérer ça, donc si vous avez des idées je suis preneur :)

<?php

class produit {
	var $id_produit;
	var $nom_produit;
	var $desc_produit;
	var $prix;
	var $reduction;
	var $nb_produit;
	var $nb_vendu;
	var $en_vente=false;
	
	
    public function __construct($id_produit,$nom_produit,$desc_produit,$prix,$reduction,$nb_produit,$nb_vendu,$en_vente) {
    	$this->id_produit= $id_produit;
		$this->nom_produit=$nom_produit;
		$this->desc_produit= $desc_produit;
		$this->prix= $prix;
		$this->reduction= $reduction;
		$this->nb_produit=$nb_produit;
		$this->nb_vendu= $nb_vendu;
		$this->en_vente= $en_vente;
    }
    
    public function nb_produit_dispo(){
    	$res=$this->nb_produit-$this->nb_vendu;
    	if ($res<0){
    		return 0;
    	}else{
    		return $res;
    	}
    }
    
   
    public function vendre_produit($qte)
    {
    	$this->nb_vendu+=$qte;
    }

}

?>