Eventlister では、 を取得したいと考えていsecurity.encoder_factory
ます。リスナーUserManager
はコンテナを知っているので、$this->get('security.encoder_factor')
明らかに機能しません。security.encoder_factory
このリスナーでプロパティを取得するにはどうすればよいですか?
サービス:
services:
my.listener:
class: Bla\OrmBundle\EventListener\UserManager
tags:
- { name: doctrine.event_listener, event: prePersist }
ユーザーマネージャー:
class UserManager {
public function prePersist(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
if ($entity instanceof User) {
$factory = $this->get('security.encoder_factory');
$encoder = $factory->getEncoder($entity);
$password = $encoder->encodePassword($entity->getPassword(), $entity->getSalt());
$entity->setPassword($password);
}
}
}