entityManager = $entityManager; $this->cookieComponent = $cookieComponent; $this->parameterBag = $parameterBag; } // addVisitor public function create(string $cookie, string $ip) { $visitorFactory = new VisitorFactory(); $visitor = $visitorFactory->create($cookie, $ip); $this->entityManager->create($visitor); $this->entityManager->flush(); } public function update(VisitorInterface $visitor) { $totalVisit = $visitor->getTotalVisit() + 1; $visitor->setTotalVisit($totalVisit); $visitor->setLastAccess(new \DateTime()); $this->entityManager->update($visitor); $this->entityManager->flush(); } // setCookieVisitor public function setCookie($response, $cookie): void { $response->headers->setCookie( Cookie::create( $this->parameterBag->get('app.cookie_name_visitor'), $this->cookieComponent->cryptCookie($cookie), new \DateTime('+2 months'), '/', $this->cookieComponent->getCookieDomain() ) ); } // updateVisitorCookie public function updateCookie($response): void { $response->headers->setCookie( Cookie::create( $this->parameterBag->get('app.cookie_name_visitor'), $this->cookieComponent->cryptCookie($this->getVisitorCurrent()->getCookie()), new \DateTime('+2 months'), '/', $this->cookieComponent->getCookieDomain() ) ); } }