src/Entity/User.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use App\Entity\Address;
  6. use FOS\UserBundle\Model\User as BaseUser;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Session\Session;
  9. use Symfony\Component\VarDumper\VarDumper;
  10. /**
  11.  * User
  12.  *
  13.  * @ORM\Table(name="user_user")
  14.  * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
  15.  * @ORM\HasLifecycleCallbacks()
  16.  */
  17. class User extends BaseUser
  18. {
  19.     /**
  20.      * @var int
  21.      *
  22.      * @ORM\Column(name="id", type="integer")
  23.      * @ORM\Id
  24.      * @ORM\GeneratedValue(strategy="AUTO")
  25.      */
  26.     protected $id;
  27.     /**
  28.      * @ORM\OneToMany(targetEntity="App\Entity\Address", mappedBy="user")
  29.      * @ORM\OrderBy({"title" = "ASC"})
  30.      */
  31.     private $addresses;
  32.     /**
  33.      * @var \DateTime
  34.      *
  35.      * @ORM\Column(name="created_at", type="datetime")
  36.      */
  37.     private $createdAt;
  38.     /**
  39.      * @var \DateTime
  40.      *
  41.      * @ORM\Column(name="updated_at", type="datetime")
  42.      */
  43.     private $updatedAt;
  44.     /**
  45.      * @ORM\Column(name="wishlist", type="array")
  46.      */
  47.     private $wishlist;
  48.     
  49.     ///**
  50.     // * @ORM\OneToMany(targetEntity="App\Entity\Token", mappedBy="user")
  51.     // */
  52.     //private $tokens;
  53.     
  54.     /**
  55.      * User constructor.
  56.      */
  57.     public function __construct()
  58.     {
  59.         parent::__construct();
  60.         //$this->tokens = new ArrayCollection();
  61.         $this->addresses = new ArrayCollection();
  62.         $this->wishlist = array();
  63.     }
  64.     
  65.     /**
  66.      * Add Token
  67.      *
  68.      * @param Token $category
  69.      * @return User
  70.      */
  71.     public function addToken(Token $token)
  72.     {
  73.         $this->tokens[] = $token;
  74.         
  75.         return $this;
  76.     }
  77.     /**
  78.      * Get id
  79.      *
  80.      * @return int
  81.      */
  82.     public function getId()
  83.     {
  84.         return $this->id;
  85.     }
  86.     public function addProductToWishList($p)
  87.     {
  88.         $this->wishlist[] = $p;
  89.     }
  90.     public function checkProductInWishlist($pid)
  91.     {
  92.         return array_search($pid$this->wishlist) !== false;
  93.     }
  94.     public function removeProductFromWishList($p)
  95.     {
  96.         $pos array_search($p$this->wishlist);
  97.         unset($this->wishlist[$pos]);
  98.     }
  99.     /**
  100.      * @return mixed
  101.      */
  102.     public function getWishlist()
  103.     {
  104.         return $this->wishlist;
  105.     }
  106.     /**
  107.      * @param mixed $wishlist
  108.      */
  109.     public function setWishlist($wishlist)
  110.     {
  111.         $this->wishlist $wishlist;
  112.     }
  113.     /**
  114.      * @param Address $address
  115.      * @return User
  116.      */
  117.     public function addAdress(Address $address)
  118.     {
  119.         $this->addresses[] = $address;
  120.         return $this;
  121.     }
  122.     /**
  123.      * @param mixed $addresses
  124.      */
  125.     public function setAddresses($addresses)
  126.     {
  127.         $this->addresses $addresses;
  128.     }
  129.     /**
  130.      * @param Address $address
  131.      * @return User
  132.      */
  133.     public function removeAddress(Address $address)
  134.     {
  135.         $this->addresses->removeElement($address);
  136.         return $this;
  137.     }
  138.     /**
  139.      * @return ArrayCollection
  140.      *
  141.      */
  142.     public function getAddresses()
  143.     {
  144.         return $this->addresses;
  145.     }
  146.     /**
  147.      * Set createdAt
  148.      *
  149.      * @param \DateTime $createdAt
  150.      *
  151.      * @return User
  152.      */
  153.     public function setCreatedAt($createdAt)
  154.     {
  155.         $this->createdAt $createdAt;
  156.         return $this;
  157.     }
  158.     /**
  159.      * Get createdAt
  160.      *
  161.      * @return \DateTime
  162.      */
  163.     public function getCreatedAt()
  164.     {
  165.         return $this->createdAt;
  166.     }
  167.     /**
  168.      * Set updatedAt
  169.      *
  170.      * @param \DateTime $updatedAt
  171.      *
  172.      * @return User
  173.      */
  174.     public function setUpdatedAt($updatedAt)
  175.     {
  176.         $this->updatedAt $updatedAt;
  177.         return $this;
  178.     }
  179.     /**
  180.      * Get updatedAt
  181.      *
  182.      * @return \DateTime
  183.      */
  184.     public function getUpdatedAt()
  185.     {
  186.         return $this->updatedAt;
  187.     }
  188.     /**
  189.      * @ORM\PrePersist()
  190.      * @ORM\PreUpdate()
  191.      */
  192.     public function preUpdate()
  193.     {
  194.         if (null == $this->createdAt) {
  195.             $this->createdAt = new \DateTime();
  196.         }
  197.         $this->updatedAt = new \DateTime();
  198.     }
  199.     public static function getSessionId(Request $request)
  200.     {
  201.         $session $request->getSession();
  202.         $session_id $session->getId();
  203.         $currentSession $session->get('customerSession');
  204.         if (empty($currentSession)) {
  205.             $session->set('customerSession'$session_id);
  206.         } else {
  207.             $session_id $session->get('customerSession');
  208.         }
  209.         return $session_id;
  210.     }
  211.     public static function regenerateAllSessions($request)
  212.     {
  213.         /** @var Session $sessions */
  214.         $sessions $request->getSession();
  215.         $sessions->clear();
  216.         return 1;
  217.     }
  218.     public function getFullName()
  219.     {
  220.         return $this->getLastname() . ' ' $this->getFirstname() . ' ('.$this->username ')';
  221.     }
  222.     public function getLastname()
  223.     {
  224.         return $this->getAddresses()[0] ? $this->getAddresses()[0]->getShippingLastname() : '';
  225.     }
  226.     public function getFirstname()
  227.     {
  228.         return $this->getAddresses()[0] ? $this->getAddresses()[0]->getShippingFirstname() : '';
  229.     }
  230. }