src/Classe/Cart.php line 57

Open in your IDE?
  1. <?php
  2. namespace App\Classe;
  3. use App\Entity\Product;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. class Cart
  7. {
  8. private $stack;
  9. private $entityManager;
  10. public function __construct(EntityManagerInterface $entityManagerRequestStack $stack)
  11. {
  12.      $this->stack $stack;
  13.      $this->entityManager $entityManager;
  14. }
  15. public function add($id)
  16. {
  17.         $session $this->stack->getSession();
  18.         $cart $session->get('cart', []);
  19.         if(!empty($cart[$id])){
  20.             $cart[$id]++;
  21.         } else {
  22.             $cart[$id] = 1;
  23.         }
  24.     
  25.           $session->set('cart'$cart);
  26. }
  27. public function get(){
  28.     $methodget $this->stack->getSession();
  29.     return $methodget->get('cart');
  30. }
  31. public function remove(){
  32.     $methodget $this->stack->getSession();
  33.     return $methodget->remove('cart');
  34. }
  35. public function delete($id)
  36. {
  37.     $session $this->stack->getSession();
  38.     $cart $session->get('cart', []);
  39.     unset($cart[$id]);
  40.     return $session->set('cart'$cart);
  41. }
  42. public function decrease($id){
  43.     $session $this->stack->getSession();
  44.     $cart $session->get('cart', []);
  45.     if($cart[$id] > 1){
  46.         $cart[$id]--;
  47.     }else{
  48.         unset($cart[$id]);
  49.     }
  50.     return $session->set('cart'$cart);
  51. }
  52. public function getFull(){
  53.     $cart $this->get();
  54.     $cartComplete = [];
  55.     if ($cart){
  56.         
  57.         foreach($cart as $id => $quantity){
  58.             $product_object $this->entityManager->getRepository(Product::class)->findOneById($id);
  59.             if (!$product_object){
  60.                 $this->delete($id);
  61.                 continue;
  62.             }
  63.                 $cartComplete[] = [
  64.                     'product' => $product_object,
  65.                     'quantity' => $quantity
  66.     
  67.                 ];
  68.             }
  69.         }
  70.             return $cartComplete;
  71. }
  72. }
  73.