src/Service/Cart/CartService.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\Service\Cart;
  3. use App\Repository\OffreRepository;
  4. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  5. class CartService
  6. {
  7.     protected $session;
  8.     protected $offreRepository;
  9.     public function __construct(SessionInterface $sessionOffreRepository $offreRepository)
  10.     {
  11.         $this->session $session;
  12.         $this->offreRepository $offreRepository;
  13.     }
  14.     public function add(int $id)
  15.     {
  16.         $panier $this->session->get('panier', []);
  17.         if (!empty($panier[$id])) {
  18.             $panier[$id]++;
  19.         } else {
  20.             $panier[$id] = 1;
  21.         }
  22.         $this->session->set('panier'$panier);
  23.     }
  24.     public function remove(int $id)
  25.     {
  26.         $panier $this->session->get('panier', []);
  27.         if (!empty($panier[$id])) {
  28.             unset($panier[$id]);
  29.         }
  30.         $this->session->set('panier'$panier);
  31.     }
  32.     public function getFullCart(): array
  33.     {
  34.         $panier $this->session->get('panier', []);
  35.         $panierWithData = [];
  36.         foreach ($panier as $id => $quantity) {
  37.             $panierWithData[] = [
  38.                 'product' => $this->offreRepository->find($id),
  39.                 'quantity' => $quantity
  40.             ];
  41.         }
  42.         return $panierWithData;
  43.     }
  44.     public function getTotal(): float
  45.     {
  46.         $total 0;
  47.         foreach ($this->getFullCart() as $item) {
  48.             $total += $item['product']->getPrice() * $item['quantity'];
  49.         }
  50.         return $total;
  51.     }
  52.     public function updateCartActionPlus(int $id)
  53.     {
  54.         $panier $this->session->get('panier', []);
  55.         $panier[$id]++;
  56.         $this->session->set('panier'$panier);
  57.     }
  58.     public function updateCartActionMoins(int $id)
  59.     {
  60.         $panier $this->session->get('panier', []);
  61.         if ($panier[$id] > 1)
  62.             $panier[$id]--;
  63.         $this->session->set('panier'$panier);
  64.     }
  65. }