/** * Delete a DB-Connected service * * @param DbConnectedRestServiceEntity $entity * @param bool $recursive * @return true */ public function deleteService(DbConnectedRestServiceEntity $entity, $recursive = false) { $this->restModel->deleteService($entity->controllerServiceName); $this->deleteDbConnectedConfig($entity); if ($recursive) { $reflection = new ReflectionClass($entity->entityClass); Utility::recursiveDelete(dirname($reflection->getFileName())); } return true; }
/** * @param string $module * @return RestServiceModel */ public function factory($module, $type = self::TYPE_DEFAULT) { if (isset($this->models[$type]) && isset($this->models[$type][$module])) { return $this->models[$type][$module]; } $moduleName = $this->normalizeModuleName($module); $config = $this->configFactory->factory($module); $moduleEntity = $this->moduleModel->getModule($moduleName); $restModel = new RestServiceModel($moduleEntity, $this->modules, $config); $restModel->getEventManager()->setSharedManager($this->sharedEventManager); switch ($type) { case self::TYPE_DEFAULT: $this->models[$type][$module] = $restModel; return $restModel; case self::TYPE_DB_CONNECTED: $model = new $type($restModel); $this->models[$type][$module] = $model; return $model; default: throw new Exception\InvalidArgumentException(sprintf('Model of type "%s" does not exist or cannot be handled by this factory', $type)); } }