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

Communauté ALL HTML : telnes

Réalisation d'une classe panier / caddie

Cet article est actuellement publié sur le site.

Photo de telnes Article publié le jeudi 29 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 sur :

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é.