La communauté ALL HTML c'est 58233 membres à ce jour dont 1 inscrits aujourd'hui et 34 depuis une semaine.

Réalisation d'une classe panier / caddie

Photo de telnes Article publié le mercredi 28 juin 2006 par telnes.
Cet article est classé dans les catégories « E-Commerce, PHP »

Ce tutorial permet de comprendre la démarche pour la réalisation de la classe panier / caddie. Par la suite, cette classe a pour but d'etre utilisée avec les sessions.

LiteBasket



Vous voulez créer un site d’e-commerce avec un panier / caddie dynamique ! Ou tout simplement stocker des informations dans un tableau de façon ordonné !
Ce tutorial à pour but de vous expliquer la démarche et ainsi d’aboutir au code final.
Le code réaliser et orienté objet PHP4.

Pourquoi objet ?



Le choix de faire une programmation objet est assez logique car un panier peut vraiment être considérer comme un objet du quotidien, et il n’y a pas de gymnastique de l’esprit à faire.

Terminologie ?



Dans une programmation il est important de garder une même logique dans les noms des méthodes (fonctions) et sur les variables. Par la suite nous prendrons l’anglais comme langue.
Le panier va donc être basket, et l’article article.

Comment va être définit notre panier et les articles dedans ?



En effet il faut faire le cahier des charges des différentes fonctionnalités que notre panier devra faire ! C’est très important de réfléchir par avance à ce que doit faire notre classe.

Dans un premier temps il faut définir la structure de notre panier. Notre panier va donc être un simple tableau indexé, c'est-à-dire :

basket => Array
(
[0] => ‘article’

[1] => ‘article’


)


Ensuite on définit la structure d’un article. Un article va donc être, également, un tableau ou les index seront des propriétés de l’article, c'est-à-dire :



Array
(
[isbn] => isbn-64589
[nom] => Flatron L1915S
[prix] => 300
[quantite] => 1
)



Définition des actions sur notre panier ?



On devra donc pouvoir :

- ajouter un article
- supprimer un article
- modifier une propriété d’un article
- ajouter une propriété à un article
- supprimer une propriété à un article
- récupérer le nombre d’article dans le panier
- récupérer un article
- récupérer l’intégralité du panier
- vider le panier


Code



<?php //------------------------------------- // // class liteBasket V1 // autor telnes 2006 // permet de gérer un panier / caddie // contact [email=telness@hotmail.com]telness@hotmail.com[/email] //------------------------------------- class litebasket{ //panier var $basket; //constructeur function litebasket(){ $basket = array(); } //ajoute un article //un article est définit par ses clé (code | propriété) et ses valeurs // array('isbn'=>'isbn-4587','nom'=>'clavier','prix'=>15,'quantite'=>56) par exemple function addArticle($array){ $this->basket[] = $array; } //supprime un article function deleteArticle($idArticle){ unset($this->basket[$idArticle]); } //modifie un article en fonction de son id et de la clé function modifyArticle($idArticle,$code,$value){ $this->basket[$idArticle][$code] = $value; } //ajoute un code suplémentaire à un article function pushCodeArticle($idArticle,$code,$value){ $this->basket[$idArticle][$code] = $value; } //supprime un code d'un article function deleteCodeArticle($idArticle,$code){ unset($this->basket[$idArticle][$code]); } //vide le panier function deleteBasket(){ $this->basket = array(); } //retourne le nombre d'article function getNbrArticle(){ return count($this->basket); } //retourne le tableau de l'article lié à l id sous forme de tableau function getInfoArticle($idArticle){ return $this->basket[$idArticle]; } //retourne l'intégralité du panier sous forme de tableau function getBasket(){ return $this->basket; } }//fin class ?>


Pour finir un petit script qui montre les différentes actions que l’on peut réaliser avec cette classe.

<?php session_start(); //inclusion de la class panier include 'litebasket.class.php'; //creation de mon objet panier $monpanier = new litebasket(); //ajout d’article dans le panier $monpanier->addArticle(array('code'=>'isbn-4587','nom'=>'clavier','prix'=>15,'quantite'=>1)); $monpanier->addArticle(array('code'=>'isbn-64589','nom'=>'ecran','prix'=>150,'quantite'=>1)); echo '---------------- addArticle ----------------<br>'; echo '<pre>'; print_r($monpanier); echo '</pre>'; //suppression d'article 0 $monpanier->deleteArticle(0); echo '---------------- deleteArticle(0) ----------------<br>'; echo '<pre>'; print_r($monpanier); echo '</pre>'; //modifie le code quantite dans mon article 1 $monpanier->modifyArticle(1,'quantite',2); echo '---------------- modifyArticle(1,\'quantite\',2) ----------------<br>'; echo '<pre>'; print_r($monpanier); echo '</pre>'; $monpanier->pushCodeArticle(1,'periferique','usb'); echo "---------------- pushCodeArticle(1,'periferique','usb')----------------<br>"; echo '<pre>'; print_r($monpanier); echo '</pre>'; $monpanier->deleteCodeArticle(1,'quantite'); echo "---------------- deleteCodeArticle(1,'quantite') ----------------<br>"; echo '<pre>'; print_r($monpanier); echo '</pre>'; echo 'il y a '.$monpanier->getNbrArticle().' artile(s) <br>'; //mise en session du panier $_SESSION['panier'] = $monpanier; echo "---------------- affichage de la session ----------------<br>"; echo '<pre>'; print_r($_SESSION); echo '</pre>'; ?>

Plus d'informations :


VOS COMMENTAIRES ...

Commenter cette publication

Photo de toxicstore Commentaire publié le jeudi 14 septembre 2006 à 20 h 29 par toxicstore
Je ne comprends rien MDR

comment on construit le code et on le met ou?
Photo de telnes Commentaire publié le vendredi 15 septembre 2006 à 08 h 04 par telnes
bonjour

tu télécharge l'archive http://telnesmaster.free.fr/litebasket/ ensuite tu la dezip dans ton répertoire www et la tu exécute test.php ! (http://localhost/liteBasket/test.php) ca te donnera une idée de ce que tu peut faire ensuite tu ouvre le fichier test.php dans ton éditeur préféré (si si il faut etre curieux) et la oh !!! la réponse à ou on met le code va te paraitre beaucoup plus claire ...

++
Photo de zozo10 Commentaire publié le lundi 30 avril 2007 à 09 h 55 par zozo10
si les articles sont dans une base, on les appelle comment ?
Photo de Dr_von_scott Commentaire publié le vendredi 28 septembre 2007 à 15 h 24 par Dr_von_scott
Hello,

Une fois de plus, je cherche une solution et je tombe sur........ Telnes
Merci pour tout les problemes de scripts que tu m'as aidé à résoudre.

Je n'ai pas encore testé ce script, mais je pars quasiment les yeux fermés.

Bonne journée à tous.
Photo de telnes Commentaire publié le mercredi 31 octobre 2007 à 10 h 34 par telnes
Ajout d'exemple supplémentaire , suite à certaines questions sur les sessions et le panier

enjoy programming

telnes

Commenter cette publication

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

Forums de discussions associés

Discutez et échangez sur ce thème dans notre forum PHP - SQL.

Liens sponsorisés

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.