*/ class UserFactory { protected TokenGeneratorInterface $tokenGenerator; protected UserPasswordEncoderInterface $encoder; public function __construct(TokenGeneratorInterface $tokenGenerator, UserPasswordEncoderInterface $encoder) { $this->tokenGenerator = $tokenGenerator; $this->encoder = $encoder; } public function create(): User { $entity = new User(); $entity->setPassword($this->encoder->encodePassword( $entity, $this->tokenGenerator->generateToken() )); return $entity; } }