src/Subscriber/UserGroups/UserGroupScoreSubscriber.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\Subscriber\UserGroups;
  3. use App\Entity\UserGroupScore;
  4. use App\Event\UserGroups\GroupScoreUpdateEvent;
  5. use App\Service\UserGroups\GroupScoreService;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class UserGroupScoreSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var GroupScoreService
  11.      */
  12.     protected $service;
  13.     /**
  14.      * UserGroupScoreSubscriber constructor.
  15.      */
  16.     public function __construct(GroupScoreService $service)
  17.     {
  18.         $this->service $service;
  19.     }
  20.     public static function getSubscribedEvents(): array
  21.     {
  22.         return [
  23.             GroupScoreUpdateEvent::class => [
  24.                 ['onScoreUpdate'0],
  25.             ],
  26.         ];
  27.     }
  28.     /**
  29.      * @throws \Doctrine\ORM\ORMException
  30.      * @throws \Doctrine\ORM\OptimisticLockException
  31.      */
  32.     public function onScoreUpdate(GroupScoreUpdateEvent $event)
  33.     {
  34.         $groupScore = new UserGroupScore();
  35.         $groupScore->setUserGroup($event->getGroup());
  36.         $groupScore->setScore($event->getScore());
  37.         $this->service->storeEntity($groupScore);
  38.     }
  39. }