initAdapters(); self::$_request_max = getenv("cfmgr.request.max"); } private function getAccountModel(): AccountModel { if ($this->_accountModel === null) { $this->_accountModel = new AccountModel(); } return $this->_accountModel; } private function initAdapters(): void { foreach ($this->getAccountModel()->getEntitys() as $entity) { $this->_clients[$entity->getPK()] = new Guzzle( new APIKey($entity->getTitle(), $entity->getAuthKey()) ); } } final public function request(string $key): Guzzle { if (!array_key_exists($key, $this->_clients)) { throw new \Exception(+__FUNCTION__ . " => {$key}에 해당하는 Adapter를 찾을수 없습니다."); } if (self::$_request >= self::$_request_max) { log_message('warning', sprintf("--Cloudflare API Call %s초 대기 시작--", self::$_request_timewait)); sleep(intval(getenv("cf.mgr.request.time.wait"))); self::$_request = 0; log_message('warning', sprintf("--Cloudflare API Call %s초 대기 종료--", self::$_request_timewait)); } self::$_request++; return $this->_clients[$key]; } }