_site = $site; $this->_debug = $debug; } final public function getSiteName(): string { if (is_null($this->_site)) { throw new \Exception("Auth Adpater Site명이 정의 되지 않았습니다."); } return ucfirst($this->_site); } abstract public function getAuthButton(); abstract public function signin(array $formDatas): UserEntity; final protected function getUserModel(): UserModel { if (is_null($this->_userModel)) { $this->_userModel = new UserModel(); } return $this->_userModel; } final protected function getUserSNSModel(): UserSNSModel { if (is_null($this->_userSNSModel)) { $this->_userSNSModel = new UserSNSModel(); } return $this->_userSNSModel; } protected function setUserSession(UserEntity $entity): void { session()->set(LOGINS['ISLOGIN'], true); $datas = array(); foreach (LOGINS['USER']['FIELDS'] as $field) { $datas[$field] = $entity->$field; } session()->set(array(LOGINS['USER']['NAME'] => $datas)); } protected function getUserSession(): array { return session()->get(LOGINS['USER']['NAME']); } }