Gestion de caddie

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 622 fois - Téléchargée 26 fois

Contenu du snippet

Une petite classe qui permet de gérer un caddie.

Source / Exemple :


<?php

class Caddie
{
	var $produits;	  //Tableau des produits du caddie
	var $nbproduits;  //Nombre de produits dans le caddie
	var $date;        //Date de la création du caddie
	var $idclient;    //Identifiant du client à qui appartient le caddie
	//var $montant;		    //Montant total du caddie

	//Constructeur initialise le tableau de produits et le montant total du caddie
  function Caddie()
  {
		$this->produits = array();
		$this->nbproduits = 0;
		$this->date = date("d/m/Y");
		$this->idclient = "";
		//$this->montant = 0;
	}

  //Renvoie la reference du produit $i
	function getRefProduits($i)
  {
    return ($this->produits[$i]['id']);
	}

  //Renvoie la quantite du produit $i
	function getQteProduits($i)
  {
    return ($this->produits[$i]['qte']);
	}
	
  //Renvoie le nombre de produits contenus dans le caddie
  function nombreDeProduits()
  {
    return $this->nbproduits;
  }

  //Renvoi la date de la création du caddie
  function getDateCaddie()
  {
    return $this->date;
  }

  //Définie l'identifiant du client à qui appartient le caddie
  function setIdClientCaddie($id)
  {
    $this->idclient = $id;
  }

  //Renvoi l'identifiant du client à qui appartient le caddie
  function getIdClientCaddie()
  {
    return $this->idclient;
  }
  
  //Ajoute un produit dans le caddie
	function ajouter($refproduit,$quantite)
  {
		if (!empty($refproduit))
    {
			$this->produits[] = array("id"=>$refproduit,"qte"=>$quantite);
			$this->nbproduits++;
		}
	}

	//Supprime un produit du caddie
  function supprimer($refproduit)
  {
		if (!empty($refproduit))
    {
			for($i=0; $i<$this->nbproduits; $i++)
			{
        if ($this->produits[$i]['id'] == $refproduit)
        {
          array_splice($this->produits, $i, 1);
          $this->nbproduits--;
			    break;
        }
		  }
		}
	}

  //Met à jour la quantite d'un produit sélectionné dans le caddie
  function miseAJour($refproduit,$quantite)
  {
		if (!empty($refproduit))	
    {
			for($i=0; $i<$this->nbproduits; $i++)
			{
        if ($this->produits[$i]['id'] == $refproduit)
        {
          $this->produits[$i]['qte'] = $quantite;
			    break;
        }
		  }
    }
  }
}
  
?>

Conclusion :


Je suis débutant alors cette classe reste à améliorer.
Je l'ai réalisée avec quelques brides de codes que j'ai pris un peu partout

A voir également

Ajouter un commentaire

Commentaires

Messages postés
29
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
6 février 2009

Je viens de survoler ton code (je pensais justement créer une classe similaire pour moi), et je dois dire que ton code me semble très propre, compréhensible, et efficace. Je débute aussi en POO, mais je ne pense pas que j'aurais fait mieux en le faisant moi-même.

La seule chose qu'il manque (c'est pour ça que je te mets 8 et pas 10), c'est un exemple d'application montrant en particulier comment passer ton panier d'une page à une autre (car je pense que c'est obligatoire pour ce genre de code). En effet, sans ça, quelqu'un qui ne s'y connait pas ne peux pas utiliser ton script (il n'a pas d'intérêt si ton objet est détruit à la fin de chaque appel de page).

Les solutions (que tu connais probablement) serait d'utiliser serialize, ou peut être de passer par une BDD pour sauvegarder le contenu de ton panier, ou par une variable de session... Il faudrait voir le mieux adapté, surtout en cas de grosse commande (par exemple 100 articles).

J'espère que tu nous fera ça prochainement, car une fois fait, de mon point de vue ton code sera nickel, et vraiment utile ;)
Messages postés
2
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
18 avril 2006

Hello,
je trouve ta classe trés sympa, mais je débute moi aussi
en poo, peux tu m'en dire plus sur l'utilisation de la classe,


$c = new Caddie();
$c::setIdClientCaddie('id321654tr43r0t13e');

????
excuse mmoi mais je suis un peu perdu,
si tu avais un exemple d'utilisation ...
je rame vraiment avec la poo, mais veux m'y mettre,
merci d'avance pour votre aide,
vede
;O]

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.