PHP Класс 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');
Автор: XE Developers ([email protected])
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
$status 회원이 가질 수 있는 상태 목록

Защищенные свойства (Protected)

Свойство Тип Описание
$accounts UserAccount Repository
$container Xpressengine 레지스터
$emails UserEmail Repository
$groups UserGroup Repository
$hasher 해시코드 생성기, 비밀번호 해싱을 위해 사용됨
$settingsSections 개인정보 설정 페이지의 섹션 리스트
$users User Repository

Открытые методы

Метод Описание
__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 비밀번호에 대한 유효성 검사를 한다.

Описание методов

__call() публичный Метод

__call
public __call ( string $method, array $parameters ) : mixed
$method string method name
$parameters array parameters
Результат mixed

__construct() публичный Метод

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() публичный Метод

UserAccount 회원계정 저장소를 반환한다.
public accounts ( ) : Xpressengine\User\Repositories\UserAccountRepositoryInterface
Результат Xpressengine\User\Repositories\UserAccountRepositoryInterface

create() публичный Метод

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

createAccount() публичный Метод

새로운 계정을 추가한다.
public createAccount ( Xpressengine\User\UserInterface $user, array $data ) : void
$user Xpressengine\User\UserInterface user
$data array data
Результат void

createEmail() публичный Метод

새로운 이메일을 생성한다
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
Результат Xpressengine\User\EmailInterface

createGroup() публичный Метод

새로운 그룹을 추가한다.
public createGroup ( array $data ) : Xpressengine\User\GroupInterface
$data array data
Результат Xpressengine\User\GroupInterface

deleteAccount() публичный Метод

계정을 삭제한다
public deleteAccount ( string $account ) : void
$account string account
Результат void

deleteEmail() публичный Метод

이메일을 삭제한다
public deleteEmail ( Xpressengine\User\EmailInterface $email ) : boolean
$email Xpressengine\User\EmailInterface email
Результат boolean

deleteGroup() публичный Метод

그룹을 삭제한다
public deleteGroup ( Xpressengine\User\GroupInterface $group ) : boolean
$group Xpressengine\User\GroupInterface group
Результат boolean

emails() публичный Метод

회원 이메일 저장소를 반환한다.
public emails ( ) : Xpressengine\User\Repositories\UserEmailRepositoryInterface
Результат Xpressengine\User\Repositories\UserEmailRepositoryInterface

getSettingsSections() публичный Метод

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

groups() публичный Метод

UserGroup 그룹 저장소를 반환한다.
public groups ( ) : Xpressengine\User\Repositories\UserGroupRepositoryInterface
Результат Xpressengine\User\Repositories\UserGroupRepositoryInterface

leave() публичный Метод

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

pendingEmails() публичный Метод

회원 등록대기 이메일 저장소를 반환한다.
public pendingEmails ( ) : Xpressengine\User\Repositories\PendingEmailRepositoryInterface
Результат Xpressengine\User\Repositories\PendingEmailRepositoryInterface

update() публичный Метод

필드: 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
Результат Xpressengine\User\UserInterface

updateAccount() публичный Метод

계정을 수정한다
public updateAccount ( Xpressengine\User\AccountInterface $account, array $data = [] ) : Xpressengine\User\AccountInterface
$account Xpressengine\User\AccountInterface account
$data array data
Результат Xpressengine\User\AccountInterface

updateEmail() публичный Метод

이메일을 수정한다
public updateEmail ( Xpressengine\User\EmailInterface $email, array $data = [] ) : Xpressengine\User\EmailInterface
$email Xpressengine\User\EmailInterface email
$data array data
Результат Xpressengine\User\EmailInterface

updateGroup() публичный Метод

그룹을 수정한다
public updateGroup ( Xpressengine\User\GroupInterface $group, array $data = [] ) : Xpressengine\User\GroupInterface
$group Xpressengine\User\GroupInterface group
$data array data
Результат Xpressengine\User\GroupInterface

users() публичный Метод

User 회원 저장소를 반환한다.
public users ( ) : Xpressengine\User\Repositories\UserRepositoryInterface
Результат Xpressengine\User\Repositories\UserRepositoryInterface

usingEmailConfirm() публичный Метод

이메일 인증의 사용 여부를 반환한다.
public usingEmailConfirm ( ) : boolean
Результат boolean 이메일 인증 사용 여부

validateDisplayName() публичный Метод

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

validateForCreate() публичный Метод

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

validateForUpdate() публичный Метод

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

validatePassword() публичный Метод

비밀번호에 대한 유효성 검사를 한다.
public validatePassword ( string $password ) : boolean
$password string 유효성 검사를 할 비밀번호
Результат boolean 유효성검사 결과, 통과할 경우 true, 실패할 경우 false

Описание свойств

$accounts защищенное свойство

UserAccount Repository
protected $accounts

$container защищенное свойство

Xpressengine 레지스터
protected $container

$emails защищенное свойство

UserEmail Repository
protected $emails

$groups защищенное свойство

UserGroup Repository
protected $groups

$hasher защищенное свойство

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

$settingsSections защищенное свойство

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

$status публичное статическое свойство

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

$users защищенное свойство

User Repository
protected $users