src/Infra/Symfony/EventSubscriber/UserSubscriber.php line 36
<?phpnamespace Infra\Symfony\EventSubscriber;use Infra\Symfony\Persistance\Doctrine\Entity\User;use Doctrine\ORM\EntityManagerInterface;use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityPersistedEvent;use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityUpdatedEvent;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;class UserSubscriber implements EventSubscriberInterface{public function __construct(private readonly EntityManagerInterface $entityManager, private readonly UserPasswordHasherInterface $passwordHasher){}public static function getSubscribedEvents(){return [BeforeEntityPersistedEvent::class => ['addUser'],BeforeEntityUpdatedEvent::class => ['updateUser'],];}public function updateUser(BeforeEntityUpdatedEvent $event){$entity = $event->getEntityInstance();if (!($entity instanceof User)) {return;}$this->setPassword($entity);}public function addUser(BeforeEntityPersistedEvent $event){$entity = $event->getEntityInstance();if (!($entity instanceof User)) {return;}$this->setPassword($entity);}public function setPassword(User $entity): void{$pass = $entity->getPassword();$entity->setPassword($this->passwordHasher->hashPassword($entity,$pass));$this->entityManager->persist($entity);$this->entityManager->flush();}}