/** * Generate a unique name from an email address * * @param $email * @return mixed|string */ function emailToName($email) { $email = mb_split('@', $email)[0]; $name = preg_replace('/[^A-Za-z0-9]/', '', $email); do { if (!$this->user->findByName($name)) { break; } $nameRev = mb_strrev($name); $number = 1; if (preg_match('/([0-9]+)(.+)/us', $nameRev, $out)) { $name = mb_strrev($out[2]); $number = $out[1] + 1; } $name = $name . $number; } while (1); return $name; }
/** * Find user by name * * @param $name * @return mixed */ public function getByName($name) { return $this->userRepo->findByName($name); }