/** * {@inheritdoc} */ public function canResend(ConfirmationSubjectInterface $subject) { if ($subject->isConfirmationConfirmed()) { throw new ConfirmationException('ui.trans.user.confirmation.resend.confirmed'); } if (null === ($timeAware = $this->options['token_resend_time_aware'])) { return true; } if (!($time = $subject->getConfirmationRequestedAt())) { return true; } $time->add(\DateInterval::createFromDateString($timeAware)); $valid = $time->getTimestamp() <= (new \DateTime())->getTimestamp(); if (false === $valid) { $exception = new InvalidTokenResendTimeException('ui.trans.user.confirmation.invalid_time'); $exception->setTime($time); $exception->setTimeAware($timeAware); throw $exception; } return $valid; }