verifyEmailHelper = $helper; } public function sendEmailConfirmation(string $verify_email_route_name, UserInterface $user, TemplatedEmail $email): void { $signatureComponents = $this->verify_email_helper->generateSignature( $verify_email_route_name, $user->getId(), $user->getOutgoingEmail() ); $context = $email->getContext(); $context['signedUrl'] = $signatureComponents->getSignedUrl(); $context['expiresAt'] = $signatureComponents->getExpiresAt(); $email->context($context); Mailer::send($email); } /** * @throws VerifyEmailExceptionInterface */ public function handleEmailConfirmation(Request $request, UserInterface $user): void { $this->verify_email_helper->validateEmailConfirmation($request->getUri(), $user->getId(), $user->getOutgoingEmail()); $user->setIsEmailVerified(true); DB::persist($user); DB::flush(); } }