Je souhaite créer un site e-commerce en php poo, du coup je souhaite être orienté afin de ne pas faire d'erreur.
J'ai créer un index
Code : Tout sélectionner
<?php
require "controller/IndexController.php";
require "controller/ItemsController.php";
if (isset($_GET['page'])) {
if (!empty($_GET['page'])) {
if ($_GET['page'] == 'items') {
$controller = new \Controller\ItemsController();
$controller->listItems();
} elseif ($_GET['page'] == 'accueil') {
$controller = new \Controller\IndexController();
$controller->index();
} elseif ($_GET['page'] == "item" && !empty($_GET['id'])) {
$controller = new \Controller\ItemsController();
$controller->itemById();
} elseif ($_GET['page'] == "panier") {
$controller = new \Controller\PanierController();
$controller->index();
}
else {
// Si aucune page n'est connu , on lance une erreur 404
$controller = new \Controller\IndexController();
$controller->error();
}
}
} else {
// Par défaut, on lance la page index
$controller = new \Controller\IndexController();
$controller->index();
}
Par contre je bloque lorsque je souhaite ajouter un article dans mon panier, je ne sais pas comment je dois procéder.
voici ma class Panier , ou ma methode construct demarre une session et créer un tableau en session $_SESSION['panier'].
Par contre est ce que je dois créer une page annexe du style "add.php" qui viendra traiter l'ajout d'un article (d'ailleur si je le fais , je ne sais pas ou l'ajouter avec le modele MVC, quelle est la bonne pratique) dans ma session ou bien je dois le faire directement dans la classe Panier avec une methode spécifique.
Mais lorsque j'essaie de mettre en place une fonction specifique du style addItem(), ça ne fonctionne pas..
Je vous laisse le code :
Merci pour vos conseils :
Code : Tout sélectionner
<?php
namespace Model;
use \Exception;
class Panier extends \Model\Model
{
protected $_db;
public function __construct()
{
session_start();
$_SESSION['panier'] = [];
$this->_db = new Database();
}
public function add($item_id)
{
$product = $this->_db->prepare("SELECT * FROM items WHERE id = ?",[$item_id], "\Model\Items");
}
}
Code : Tout sélectionner
<?php
namespace Controller;
require_once("model/autoload.php");
class PanierController extends \Controller\Controller
{
protected $panier;
public function __construct()
{
$panier = new \Model\Panier();
$this->panier = $panier;
}
public function index()
{
require_once "views/panierView.php";
}
public function addToCart($item_id)
{
$this->panier->add($item_id);
require "views/panierView.php";
}
}
Code : Tout sélectionner
elseif($_GET['page'] == "addItem"){
$controller = new \Controller\PanierController();
\Model\Database::debug($controller);
$product = $controller->addToCart($_GET['id']);
}