PHP Class Xpressengine\User\UserHandler

UserHandler는 XeUser 파사드를 통해 쉽게 사용할 수 있습니다. ## 회원 조회 회원 정보를 조회할 때에는 UserRepository를 사용하십시오. UserRepository는 UserHandler를 통하여 가져올 수 있습니다. $userRepository = XeUser::users(); > UserRepository는 laravel의 Eloquent 모델의 사용법을 대부분 그대로 사용할 수 있습니다. laravel Eloquent 모델의 사용법은 라라벨 문서를 참조하십시오. ### 회원아이디로 회원조회 회원 아이디로 회원 조회할 때에는 find 메소드를 사용하십시오. php $user = XeUser::users()->find($id); $username = $user->getDisplayName(); 여러 회원을 조회할 수도 있습니다. php $ids = [1,2,3]; $users = XeUser::users()->find($ids); foreach($users as $user) { ... } ### 회원 정보로 회원조회 다양하고 복잡한 조건으로 회원을 조회할 수도 있습니다. 자세한 사용법은 라라벨 문서를 참조하십시오. php displayName이 foo인 회원 조회 $user = XeUser::users()->where('displayName', 'foo')->first(); php displayName이 foo로 시작하는 모든 회원 조회 $user = XeUser::users()->where('displayName', 'like', '%foo')->get(); ## 신규 회원 추가 UserHandler는 복잡한 회원 생성 과정을 한번에 처리해주는 create 메소드를 제공합니다. create 메소드는 입력한 신규회원 정보에 대한 유효성 검사후 신규회원을 생성합니다. 또한 회원의 계정(account), 이메일(email) 정보도 자동으로 추가되며, 소솔될 그룹에 대한 정보가 전달되었을 경우, 그룹에 추가시켜주기도 합니다. php $data = [ 'displayName' => 'foo', 'email' => '[email protected]', ... ]; $newUser = XeUser::create($data); 신규 회원의 계정(account) 정보를 같이 등록할 수도 있습니다. php $data = [ 'displayName' => 'foo', 'email' => '[email protected]', ... ] $data['account'] = [ 'provider' => 'facebook', 'token' => '3DIfdkwwfdsie...', 'id' => 'id of facebook user', 'data' => '...' ] $newUser = XeUser::create($data); 신규회원이 소속될 회원그룹을 지정할 수도 있습니다. php $data = [ 'displayName' => 'foo', 'email' => '[email protected]', 'groupId' => [21,23] // 그룹아이디가 21, 23인 그룹에 회원을 소속시킴 ] $newUser = XeUser::create($data); 만약 유효성검사 및 관련 정보(account, email, group) 등록을 하지않고 신규회원 정보만 추가하고싶다면 UserRepository를 사용하십시오. php $data = [ 'displayName' => 'foo', 'email' => '[email protected]', 'password' => '...' ] $newUser = XeUser::users()->create($data); > 주의! UserRepository의 create 메소드는 password를 암호화하지 않고 바로 저장합니다. 먼저 password 필드를 직접 암호화하십시오. ## 회원정보 수정 update 메소드를 사용하면 회원정보를 변경할 수 있습니다. 유효성 검사 및 프로필 이미지 처리, 소속그룹 변경도 동시에 처리합니다. $user = XeUser::find(20); XeUser::update($user, ['displayName' => 'bar']); ## 회원삭제 leave 메소드를 사용하면 특정 회원을 탈퇴시킬 수 있습니다. leave 메소드를 사용하면 탈퇴시킬 회원의 관련정보(account, email)도 같이 삭제됩니다. php $ids = [12,23,34]; XeUser::leave($ids); // 3명의 회원을 탈퇴시킴 UserRepository의 delete 메소드를 사용하여 회원을 삭제할 수도 있습니다. 단, 이 메소드를 사용하면 삭제될 회원과 관련된 정보는 함께 삭제되지 않습니다. php $user = XeUser::find(12); XeUser::delete($user); ## 회원과 관련된 정보의 조회 및 처리 회원계정(account), 회원이메일(email), 회원 승인대기 이메일(pending email), 회원그룹(group)과 같은 회원과 관련된 정보도 UserHandler를 사용하여 조회하고 처리할 수 있습니다. 회원과 관련된 정보에 대한 생성(create), 삭제(delete), 업데이트(update) 기능은 UserHandler에서 직접 제공합니다. 단, 회원과 관련된 정보에 대한 조회(retrieve) 기능은 각각의 Repository를 통해 실행해야 합니다. UserHandler에서 제공하는 생성(create), 삭제(delete), 업데이트(update) 기능은 아래 코드를 참고하십시오. php 그룹정보 생성/수정/삭제 $groupData = [ 'name' => '정회원', 'description' => '기본회원', ]; $group = XeUser::createGroup($groupData); XeUser::updateGroup($group, ['name' => '기본회원']); XeUser::deleteGroup($group); 이메일정보 생성/수정/삭제 $user = XeUser::find('123'); $data = [ 'address' => '[email protected]' ]; $confirmed = true; // 승인|승인대기 이메일 구분 $email = XeUser::createEmail($user, $data, $confirmed); XeUser::updateEmail($email, ['address' => '[email protected]']); XeUser::deleteEmail($email); 계정정보 생성/수정/삭제 $data = [ 'provider' => 'facebook', .... ] $account = XeUser::createAccount($user, array $data); XeUser::updateAccount($account, ['data'=>'...']); XeUser::deleteAccount($account); ### 회원계정(account) XE에서 각각의 회원(user)는 여러개의 외부 계정을 가질 수 있습니다. 만약 한 회원이 facebook, google, naver 등 여러개의 외부 계정을 소유하고 있다면, 소유한 계정중 하나를 이용하여 로그인할 수 있습니다. 회원계정을 조회할 때에는 UserAccountRepository를 사용하십시오. UserAccountRepository는 UserHandler를 통하여 가져올 수 있습니다. php $accountRepository = XeUser::accounts(); 한 회원이 소유한 계정 목록을 조회할 수 있습니다. php 회원계정아이디로 회원계정정보 조회 $userId = '123'; $accounts = XeUser::accounts()->findByUserId($accountId); 위 코드는 아래 코드로 대체할 수도 있습니다. php $user = XeUser::users()->find('123'); $accounts = $user->accounts; > UserAccountRepository는 laravel의 Eloquent 모델의 사용법을 대부분 그대로 사용할 수 있습니다. laravel Eloquent 모델의 사용법은 라라벨 문서를 참조하십시오. ### 회원 이메일(email) XE에서 각각의 회원은 여러개의 이메일을 가질 수 있습니다. 만약 한 회원이 여러개의 이메일을 소유하고 있다면, 소유한 이메일 중 하나와 비밀번호를 사용하여 로그인 할 수 있습니다. 회원의 이메일을 조회할 때에는 UserEmailRepository를 사용하십시오. UserEmailRepository는 UserHandler를 통하여 가져올 수 있습니다. php $emailRepository = XeUser::emails(); 이메일 주소를 사용하여 이메일정보 조회할 수 있습니다. php $email = XeUser::emails()->findByAddress('[email protected]'); ### 승인 대기중인 이메일(pending email) 회원이 소유한 이메일은 승인된 이메일과 승인 대기중인 이메일로 구분됩니다. 승인된 이메일(email)과 승인대기 이메일(pendingEmail)은 별도의 테이블에 저장됩니다. 승인된 이메일은 한 회원이 여러개 가질 수 있지만, 승인대기 이메일은 한 회원당 하나만 가질 수 있습니다. 승인대기 이메일 주소로는 로그인을 할 수 없습니다. 회원의 승인대기 이메일을 조회할 때에는 PendingEmailRepository를 사용하십시오. PendingEmailRepository는 UserHandler를 통하여 가져올 수 있습니다. php $pendingEmailRepository = XeUser::pendingEmails(); php $pendingEmail = XeUser::pendingEmails()->findByUserId('123');
Author: XE Developers ([email protected])
Mostrar archivo Open project: xpressengine/xpressengine Class Usage Examples

Public Properties

Property Type Description
$status 회원이 가질 수 있는 상태 목록

Protected Properties

Property Type Description
$accounts UserAccount Repository
$container Xpressengine 레지스터
$emails UserEmail Repository
$groups UserGroup Repository
$hasher 해시코드 생성기, 비밀번호 해싱을 위해 사용됨
$settingsSections 개인정보 설정 페이지의 섹션 리스트
$users User Repository

Public Methods

Method Description
__call ( string $method, array $parameters ) : mixed __call
__construct ( Xpressengine\User\Repositories\UserRepositoryInterface $users, Xpressengine\User\Repositories\UserAccountRepositoryInterface $accounts, Xpressengine\User\Repositories\UserGroupRepositoryInterface $groups, Xpressengine\User\Repositories\UserEmailRepositoryInterface $mails, Xpressengine\User\Repositories\PendingEmailRepositoryInterface $pendingEmails, UserImageHandler $imageHandler, Illuminate\Contracts\Hashing\Hasher $hasher, Illuminate\Contracts\Validation\Factory $validator, Container $container, boolean $useEmailConfirm ) constructor.
accounts ( ) : Xpressengine\User\Repositories\UserAccountRepositoryInterface UserAccount 회원계정 저장소를 반환한다.
create ( array $data ) : Xpressengine\User\UserInterface 주어진 정보로 신규회원을 등록한다. 회원정보에 대한 유효성검사도 병행하며, 회원관련 정보(그룹, 이메일, 등록대기 이메일, 계정)도 동시에 추가한다.
createAccount ( Xpressengine\User\UserInterface $user, array $data ) : void 새로운 계정을 추가한다.
createEmail ( Xpressengine\User\UserInterface $user, array $data, boolean $confirmed = true ) : Xpressengine\User\EmailInterface 새로운 이메일을 생성한다
createGroup ( array $data ) : Xpressengine\User\GroupInterface 새로운 그룹을 추가한다.
deleteAccount ( string $account ) : void 계정을 삭제한다
deleteEmail ( Xpressengine\User\EmailInterface $email ) : boolean 이메일을 삭제한다
deleteGroup ( Xpressengine\User\GroupInterface $group ) : boolean 그룹을 삭제한다
emails ( ) : Xpressengine\User\Repositories\UserEmailRepositoryInterface 회원 이메일 저장소를 반환한다.
getSettingsSections ( ) : array 개인 회원정보 설정 페이지의 섹션 목록을 반환한다.
groups ( ) : Xpressengine\User\Repositories\UserGroupRepositoryInterface UserGroup 그룹 저장소를 반환한다.
leave ( string | string[] $userIds ) : void 회원탈퇴 처리를 한다. 회원관련 정보(그룹, 이메일, 등록대기 이메일, 계정)도 동시에 삭제한다.
pendingEmails ( ) : Xpressengine\User\Repositories\PendingEmailRepositoryInterface 회원 등록대기 이메일 저장소를 반환한다.
update ( Xpressengine\User\UserInterface $user, array $userData ) : Xpressengine\User\UserInterface 회원정보를 업데이트 한다.
updateAccount ( Xpressengine\User\AccountInterface $account, array $data = [] ) : Xpressengine\User\AccountInterface 계정을 수정한다
updateEmail ( Xpressengine\User\EmailInterface $email, array $data = [] ) : Xpressengine\User\EmailInterface 이메일을 수정한다
updateGroup ( Xpressengine\User\GroupInterface $group, array $data = [] ) : Xpressengine\User\GroupInterface 그룹을 수정한다
users ( ) : Xpressengine\User\Repositories\UserRepositoryInterface User 회원 저장소를 반환한다.
usingEmailConfirm ( ) : boolean 이메일 인증의 사용 여부를 반환한다.
validateDisplayName ( string $name ) : boolean 표시이름(displayName)에 대한 유효성 검사를 한다. 표시이름이 형식검사와 중복검사를 병행한다.
validateForCreate ( array $data ) : boolean 신규회원의 정보를 유효성 검사한다.
validateForUpdate ( Xpressengine\User\UserInterface $user, array $data ) : boolean 회원의 정보를 업데이트할 때 필요한 유효성 검사를 한다.
validatePassword ( string $password ) : boolean 비밀번호에 대한 유효성 검사를 한다.

Method Details

__call() public method

__call
public __call ( string $method, array $parameters ) : mixed
$method string method name
$parameters array parameters
return mixed

__construct() public method

constructor.
public __construct ( Xpressengine\User\Repositories\UserRepositoryInterface $users, Xpressengine\User\Repositories\UserAccountRepositoryInterface $accounts, Xpressengine\User\Repositories\UserGroupRepositoryInterface $groups, Xpressengine\User\Repositories\UserEmailRepositoryInterface $mails, Xpressengine\User\Repositories\PendingEmailRepositoryInterface $pendingEmails, UserImageHandler $imageHandler, Illuminate\Contracts\Hashing\Hasher $hasher, Illuminate\Contracts\Validation\Factory $validator, Container $container, boolean $useEmailConfirm )
$users Xpressengine\User\Repositories\UserRepositoryInterface User 회원 저장소
$accounts Xpressengine\User\Repositories\UserAccountRepositoryInterface UserAccount 회원계정 저장소
$groups Xpressengine\User\Repositories\UserGroupRepositoryInterface UserGroup 그룹 저장소
$mails Xpressengine\User\Repositories\UserEmailRepositoryInterface 회원 이메일 저장소
$pendingEmails Xpressengine\User\Repositories\PendingEmailRepositoryInterface 회원 등록대기 이메일 저장소
$imageHandler UserImageHandler image handler
$hasher Illuminate\Contracts\Hashing\Hasher 해시코드 생성기, 비밀번호 해싱을 위해 사용됨
$validator Illuminate\Contracts\Validation\Factory 유효성 검사기. 비밀번호 및 표시이름(dispalyName)의 유효성 검사를 위해 사용됨
$container Xpressengine\Register\Container Xpressengine 레지스터
$useEmailConfirm boolean 이메일 인증의 사용여부

accounts() public method

UserAccount 회원계정 저장소를 반환한다.
public accounts ( ) : Xpressengine\User\Repositories\UserAccountRepositoryInterface
return Xpressengine\User\Repositories\UserAccountRepositoryInterface

create() public method

주어진 정보로 신규회원을 등록한다. 회원정보에 대한 유효성검사도 병행하며, 회원관련 정보(그룹, 이메일, 등록대기 이메일, 계정)도 동시에 추가한다.
public create ( array $data ) : Xpressengine\User\UserInterface
$data array 신규회원 정보
return Xpressengine\User\UserInterface 신규 등록된 회원정보

createAccount() public method

새로운 계정을 추가한다.
public createAccount ( Xpressengine\User\UserInterface $user, array $data ) : void
$user Xpressengine\User\UserInterface user
$data array data
return void

createEmail() public method

새로운 이메일을 생성한다
public createEmail ( Xpressengine\User\UserInterface $user, array $data, boolean $confirmed = true ) : Xpressengine\User\EmailInterface
$user Xpressengine\User\UserInterface user
$data array data
$confirmed boolean confirmed
return Xpressengine\User\EmailInterface

createGroup() public method

새로운 그룹을 추가한다.
public createGroup ( array $data ) : Xpressengine\User\GroupInterface
$data array data
return Xpressengine\User\GroupInterface

deleteAccount() public method

계정을 삭제한다
public deleteAccount ( string $account ) : void
$account string account
return void

deleteEmail() public method

이메일을 삭제한다
public deleteEmail ( Xpressengine\User\EmailInterface $email ) : boolean
$email Xpressengine\User\EmailInterface email
return boolean

deleteGroup() public method

그룹을 삭제한다
public deleteGroup ( Xpressengine\User\GroupInterface $group ) : boolean
$group Xpressengine\User\GroupInterface group
return boolean

emails() public method

회원 이메일 저장소를 반환한다.
public emails ( ) : Xpressengine\User\Repositories\UserEmailRepositoryInterface
return Xpressengine\User\Repositories\UserEmailRepositoryInterface

getSettingsSections() public method

개인 회원정보 설정 페이지는 여러개의 섹션(메뉴)로 구성된다. 기본적으로 Xpressengien은 '회원 기본정보 설정' 섹션이 가지고 있고, 다른 서드파티에서 자유롭게 섹션을 추가할 수 있다. 예) 소셜로그인 플러그인의 '외부 로그인 설정' 섹션 이 메소드는 이렇게 등록된 섹션 목록을 반환한다.
public getSettingsSections ( ) : array
return array 등록된 회원정보 설정 페이지 섹션 목록

groups() public method

UserGroup 그룹 저장소를 반환한다.
public groups ( ) : Xpressengine\User\Repositories\UserGroupRepositoryInterface
return Xpressengine\User\Repositories\UserGroupRepositoryInterface

leave() public method

회원탈퇴 처리를 한다. 회원관련 정보(그룹, 이메일, 등록대기 이메일, 계정)도 동시에 삭제한다.
public leave ( string | string[] $userIds ) : void
$userIds string | string[] 탈퇴할 회원의 회원아이디 목록
return void

pendingEmails() public method

회원 등록대기 이메일 저장소를 반환한다.
public pendingEmails ( ) : Xpressengine\User\Repositories\PendingEmailRepositoryInterface
return Xpressengine\User\Repositories\PendingEmailRepositoryInterface

update() public method

필드: email, displayName, password, status, introduction, profileImgFile, groupId
public update ( Xpressengine\User\UserInterface $user, array $userData ) : Xpressengine\User\UserInterface
$user Xpressengine\User\UserInterface user
$userData array user data
return Xpressengine\User\UserInterface

updateAccount() public method

계정을 수정한다
public updateAccount ( Xpressengine\User\AccountInterface $account, array $data = [] ) : Xpressengine\User\AccountInterface
$account Xpressengine\User\AccountInterface account
$data array data
return Xpressengine\User\AccountInterface

updateEmail() public method

이메일을 수정한다
public updateEmail ( Xpressengine\User\EmailInterface $email, array $data = [] ) : Xpressengine\User\EmailInterface
$email Xpressengine\User\EmailInterface email
$data array data
return Xpressengine\User\EmailInterface

updateGroup() public method

그룹을 수정한다
public updateGroup ( Xpressengine\User\GroupInterface $group, array $data = [] ) : Xpressengine\User\GroupInterface
$group Xpressengine\User\GroupInterface group
$data array data
return Xpressengine\User\GroupInterface

users() public method

User 회원 저장소를 반환한다.
public users ( ) : Xpressengine\User\Repositories\UserRepositoryInterface
return Xpressengine\User\Repositories\UserRepositoryInterface

usingEmailConfirm() public method

이메일 인증의 사용 여부를 반환한다.
public usingEmailConfirm ( ) : boolean
return boolean 이메일 인증 사용 여부

validateDisplayName() public method

표시이름(displayName)에 대한 유효성 검사를 한다. 표시이름이 형식검사와 중복검사를 병행한다.
public validateDisplayName ( string $name ) : boolean
$name string 유효성 검사를 할 표시이름
return boolean 유효성검사 결과, 통과할 경우 true, 실패할 경우 false

validateForCreate() public method

신규회원의 정보를 유효성 검사한다.
public validateForCreate ( array $data ) : boolean
$data array 회원의 정보
return boolean 유효성검사 결과, 통과할 경우 true, 실패할 경우 false

validateForUpdate() public method

회원의 정보를 업데이트할 때 필요한 유효성 검사를 한다.
public validateForUpdate ( Xpressengine\User\UserInterface $user, array $data ) : boolean
$user Xpressengine\User\UserInterface user
$data array data
return boolean 유효성검사 결과, 통과할 경우 true, 실패할 경우 false

validatePassword() public method

비밀번호에 대한 유효성 검사를 한다.
public validatePassword ( string $password ) : boolean
$password string 유효성 검사를 할 비밀번호
return boolean 유효성검사 결과, 통과할 경우 true, 실패할 경우 false

Property Details

$accounts protected_oe property

UserAccount Repository
protected $accounts

$container protected_oe property

Xpressengine 레지스터
protected $container

$emails protected_oe property

UserEmail Repository
protected $emails

$groups protected_oe property

UserGroup Repository
protected $groups

$hasher protected_oe property

해시코드 생성기, 비밀번호 해싱을 위해 사용됨
protected $hasher

$settingsSections protected_oe property

개인정보 설정 페이지의 섹션 리스트
protected $settingsSections

$status public_oe static_oe property

회원이 가질 수 있는 상태 목록
public static $status

$users protected_oe property

User Repository
protected $users