<?php
namespace App\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
class LoginSubscriber implements EventSubscriberInterface
{
private $security;
private $en;
public function __construct(Security $security, EntityManagerInterface $en)
{
$this->security = $security;
$this->en = $en;
}
public function onLogin(LoginSuccessEvent $event): void
{
$user = $this->security->getUser();
// Vérifie que l'utilisateur est bien une entité (et pas null)
if ($user) {
$user->setLastLoginAt(new \DateTime());
$this->en->flush();
}
}
public static function getSubscribedEvents(): array
{
return [
LoginSuccessEvent::class => 'onLogin',
];
}
}