_site = $site; $this->_debug = $debug; $this->_session = \Config\Services::session(); } 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 { $datas = array(SESSION_NAMES['USER'] => array()); foreach (SESSION_USER_FIELDS as $key => $field) { $datas[SESSION_NAMES['USER']][$field] = $entity->$field; } $this->_session->set($datas); } }