src/EventSubscriber/UserMoveRankingCleverSubscriber.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Events\UserMoveRankingCleverEvent;
  4. use App\Repository\UserMoveRankingCleverRepository;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class UserMoveRankingCleverSubscriber implements EventSubscriberInterface
  8. {
  9.     private EntityManagerInterface $em;
  10.     private UserMoveRankingCleverRepository $er;
  11.     public function __construct(
  12.         EntityManagerInterface $em,
  13.         UserMoveRankingCleverRepository $er
  14.     ) {
  15.         $this->em $em;
  16.         $this->er $er;
  17.     }
  18.     public static function getSubscribedEvents(): array
  19.     {
  20.         return [
  21.             UserMoveRankingCleverEvent::CREATED => 'onCreated',
  22.         ];
  23.     }
  24.     public function onCreated(UserMoveRankingCleverEvent $event): void
  25.     {
  26.         $ranking $event->getUserMoveRankingClever();
  27.         $user $ranking->getUser();
  28.         $sum $this->er->sumPointsBy($user);
  29.         $user->setNumPointsRankingClever($sum);
  30.         $sum $this->er->sumSecondsBy($user);
  31.         $user->setNumSecondsRankingClever($sum);
  32.         $this->em->persist($user);
  33.         $this->em->flush();
  34.     }
  35. }