uri_path .= strtolower($this->getService()->getClassName()) . '/'; // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; $this->class_path = $this->getService()->getClassPath(); $this->title = lang("{$this->getService()->getClassPath()}.title"); $this->helper = $this->getHelper(); // $this->individualStylesheets = ['server_partinfo.css']; // $this->individualScripts = ['server_partinfo.js']; } public function getService(): ServerService { if (!$this->_service) { $this->_service = new ServerService($this->request); } return $this->_service; } public function getHelper(): mixed { if (!$this->_helper) { $this->_helper = new ServerHelper($this->request); } return $this->_helper; } final public function getPartService(): PartService { if (!$this->_partService) { $this->_partService = new PartService($this->request); } return $this->_partService; } final public function getServerPartService(): ServerPartService { if (!$this->_serverPartService) { $this->_serverPartService = new ServerPartService($this->request); } return $this->_serverPartService; } //Index,FieldForm관련 private function setPartEntity(ServerEntity $entity): ServerEntity { foreach ($this->getServerPartService()->getEntities(['serverinfo_uid' => $entity->getPK()]) as $serverPartEntity) { $partEntity = $this->getPartService()->getEntity($serverPartEntity->getPartInfoUID()); if ($partEntity) { $entity->addPartEntity($partEntity->getType(), $partEntity); } } return $entity; } protected function index_process(): array { $fields = [ 'fields' => ['code', 'type', 'model', 'CPU', 'RAM', 'DISK', 'status'], ]; $this->init('index', $fields); $this->modal_type = 'modal_iframe'; $entities = []; foreach (parent::index_process() as $entity) { $entities[] = $this->setPartEntity($entity); } return $entities; } }