/** * @param string $entityType * @param integer $entityId * @param User $user * @param \DateTime $date * @return bool */ public function subscribe(User $user, $entityType, $entityId, \DateTime $date = null) { /** @var $em EntityManager */ $em = $this->doctrine->getManager(); if (!$this->isSubscriber($user, $entityType, $entityId)) { $subscription = new Subscription(); $subscription->setEntityType($entityType); $subscription->setEntityId($entityId); $subscription->setUser($user); if ($date instanceof \DateTime) { $subscription->setCreatedAt($date); } $em->persist($subscription); $em->flush(); } return true; }