Users::createUser PHP Method

createUser() public method

create user
public createUser ( &$uid, $token, $account, $alias, $password, $avatar = null ) : user's
return user's
    public function createUser(&$uid, $token, $account, $alias, $password, $avatar = null)
    {
        $tokens = $this->factory->create('Tokens');
        $token = $tokens->getToken($token);
        Verify::isTrue(!$token['uid'], new BadRequest('invalid token'));
        Verify::isTrue($token['account'] == $account, new Forbidden('invalid mobile ' . $account));
        if ($avatar) {
            $avatar = $this->uploadAvatar($avatar);
        } else {
            $avatar = '';
        }
        $pdo = $this->db;
        $pdo->beginTransaction();
        try {
            //is account conflict
            $res = Sql::select('uid')->from('uc_members')->where('username = ? OR email = ? OR mobile = ?', $account, $account, $account)->forUpdate()->get($pdo);
            Verify::isTrue(count($res) == 0, new AccountConflict("account {$account} conflict"));
            //is avatar conflict
            $res = Sql::select('uid')->from('pre_common_member_profile')->where('realname = ?', $alias)->forUpdate()->get($pdo);
            Verify::isTrue(count($res) == 0, new AliasConflict("alias {$alias} conflict"));
            $uid = Sql::insertInto('uc_members')->values(['username' => $account, 'password' => $password, 'regdate' => Sql::native('UNIX_TIMESTAMP(now())'), 'salt' => ''])->exec($pdo)->lastInsertId();
            Sql::insertInto('pre_common_member_profile')->values(['realname' => $alias, 'uid' => $uid, 'avatar' => $avatar])->exec($pdo);
            $pdo->commit();
        } catch (Exception $e) {
            Logger::warning("createUser({$account}) failed with " . $e->getMessage());
            $pdo->rollBack();
            throw $e;
        }
        $token['uid'] = $uid;
        $tokens->updateToken($token, $token);
        return ['uid' => $uid];
    }

Usage Example

示例#1
0
 public function actionCreateUser()
 {
     $request = CJSON::decode(file_get_contents('php://input'));
     if ($request) {
         echo CJSON::encode(Users::createUser($request));
     }
 }
All Usage Examples Of Users::createUser