public function generateUsername(FirstName $firstName, LastName $lastName, $offset = 1) { $fullNameStr = $firstName->toString() . $lastName->toString(); $modifier = $offset > 1 ? $offset : ''; $username = Username::fromNative(str_slug($fullNameStr . $modifier)); if ($this->userRepository->userOfUsername($username)) { return $this->generateUsername($firstName, $lastName, $offset + 1); } return $username; }
public static function create() { // return 'here'; $faker = Factory::create(); $identifier = UserId::generate(); $email = Email::fromNative($faker->email); $first = FirstName::fromNative($faker->word); $last = LastName::fromNative($faker->word); $username = Username::fromNative($faker->word); $password = HashedPassword::fromNative(str_random(10)); return User::create($identifier, $email, $first, $last, $username, $password); }
/** * Set the User's username * * @param Username $username * @return void */ private function setUsername(Username $username) { $this->username = $username->toString(); }
/** * Find a user by their email address * * @param Username $username * @return User */ public function userOfUsername(Username $username) { return $this->em->getRepository($this->class)->findOneBy(['username' => $username->toString()]); }