src/Subscriber/User/LogoutSubscriber.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Subscriber\User;
  3. use App\Entity\MemberOnline;
  4. use App\Event\User\LogoutEvent;
  5. use App\Service\User\MemberOnlineService;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class LogoutSubscriber implements EventSubscriberInterface
  8. {
  9.     protected MemberOnlineService $memberOnlineService;
  10.     public function __construct(MemberOnlineService $memberOnline)
  11.     {
  12.         $this->memberOnlineService $memberOnline;
  13.     }
  14.     public static function getSubscribedEvents(): array
  15.     {
  16.         return [
  17.             LogoutEvent::class => [
  18.                 ['onAccountLogout'0],
  19.             ],
  20.         ];
  21.     }
  22.     public function onAccountLogout(LogoutEvent $event): void
  23.     {
  24.         $memberOnline $this->memberOnlineService->getMemberOnlineByMember($event->getAccount()->getMember());
  25.         if (!$memberOnline instanceof MemberOnline || !$memberOnline->getIsOnlineWithBusinessLogic()) {
  26.             return;
  27.         }
  28.         $this->memberOnlineService->refreshMemberOnlineStatus($memberOnlinefalse);
  29.     }
  30. }