title = lang("{$this->getService()->getClassName()}.title"); $this->class_path .= $this->getService()->getClassName(); $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; } public function getService(): LineService { if (!$this->_service) { $this->_service = new LineService($this->request); } return $this->_service; } public function getHelper(): LineHelper { 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['status'] = DEFAULTS['STATUS']; $this->getIpService()->create($temps, new IpEntity()); } return $entity; } protected function view_process($uid): mixed { $fields = [ 'fields' => ['clientinfo_uid', 'type', 'title', 'bandwith', 'status', "start_at", 'created_at'], ]; $this->init('view', $fields); return parent::view_process($uid); } protected function index_process(): array { $fields = [ 'fields' => ['clientinfo_uid', 'type', 'title', 'bandwith', 'status', "start_at", 'created_at'], ]; $this->init('index', $fields); return parent::index_process(); } }