/** * @param Badge $badge * @param Constraint $constraint */ public function validate($badge, Constraint $constraint) { if ($badge->isExpiring()) { if (null === $badge->getExpireDuration()) { $this->context->addViolationAt('expire_duration', $constraint->message); } } }
/** * @param Badge $badge * @param \DateTime|null $currentDate * * @return \DateTime */ public function generateExpireDate(Badge $badge, \DateTime $currentDate = null) { if (null === $currentDate) { $currentDate = new \DateTime(); } $modifier = sprintf('+%d %s', $badge->getExpireDuration(), $badge->getExpirePeriodTypeLabel($badge->getExpirePeriod())); return $currentDate->modify($modifier); }