for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace App\Repository;
use App\Entity\EmailConfirmation;
use App\Entity\User;
use DateTime;
use Doctrine\ORM\EntityManagerInterface;
class EmailConfirmationRepository implements EmailConfirmationRepositoryInterface {
private $em;
public function __construct(EntityManagerInterface $em) {
$this->em = $em;
}
public function findOneByToken(string $token): ?EmailConfirmation {
return $this->em
->getRepository(EmailConfirmation::class)
->findOneBy([
'token' => $token
]);
public function findOneByUser(User $user): ?EmailConfirmation {
'user' => $user
public function persist(EmailConfirmation $confirmation): void {
$this->em->persist($confirmation);
$this->em->flush();
public function remove(EmailConfirmation $confirmation): void {
$this->em->remove($confirmation);
/**
* @inheritDoc
*/
public function removeExpired(DateTime $dateTime): int {
return $this->em->createQueryBuilder()
return $this->em->create...->getQuery()->execute()
array
integer
->delete(EmailConfirmation::class, 'c')
->where('c.validUntil < :threshold')
->setParameter('threshold', $dateTime)
->getQuery()
->execute();