uri_path .= strtolower($this->getService()->getClassName()) . '/'; $this->class_path = $this->getService()->getClassPath(); $this->title = lang("{$this->getService()->getClassPath()}.title"); $this->helper = $this->getHelper(); } public function getService(): LineService { if (!$this->_service) { $this->_service = new LineService($this->request); } return $this->_service; } public function getHelper(): mixed { if (!$this->_helper) { $this->_helper = new LineHelper($this->request); } return $this->_helper; } final public function getIpService(): IpService { if (!$this->_ipService) { $this->_ipService = new IpService($this->request); } return $this->_ipService; } //Index,FieldForm관련 //생성 protected function create_process(): LineEntity { //Line 등록 if (!$this->getHelper()->isValidCIDR($this->formDatas['bandwith'])) { throw new \Exception("{$this->formDatas['bandwith']}는 CIDR 형식에 부합되지 않습니다."); } $entity = parent::create_process(); // //IP 등록 foreach ($this->getHelper()->cidrToIpRange($this->formDatas['bandwith']) as $ip) { $temps = []; $temps['lineinfo_uid'] = $entity->getPK(); $temps['ip'] = $ip; $temps['price'] = $this->formDatas['price'] ?? 0; $temps['status'] = lang("{$this->getIpService()->getClassPath()}.DEFAULTS.status"); $this->getIpService()->create($temps, new IpEntity()); } return $entity; } }