/** * Create new user * * @param \User\Entity\User $user * @return \User\Entity\User|null */ public function create($user) { // I have to ensure that there is no user with the same username or email if ($this->exist($user)) { return null; } if ($user->password) { // Encrypt the password $user->password = $this->encryptPassword($user->password); } $user->secret_key = $this->generateSecretKey(); $user = $this->userMapper->create($user->getProperties()); $this->getEventManager()->trigger('create.success', $this, ['user' => $user]); return $user; }