/** * 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; }
/** * Delete a named service * * @todo Remove content-negotiation and/or HAL configuration? * @param string $controllerService * @param bool $recursive * @return true */ public function deleteService($controllerService, $recursive = false) { try { $service = $this->fetch($controllerService); } catch (Exception\RuntimeException $e) { throw new Exception\RuntimeException(sprintf('Cannot delete REST service "%s"; not found', $controllerService), 404); } if ($recursive) { $reflection = new ReflectionClass($service->resourceClass); Utility::recursiveDelete(dirname($reflection->getFileName())); } $this->deleteRoute($service); $response = $this->deleteDoctrineRestConfig($service); if ($response instanceof ApiProblem) { return $response; } return true; }
/** * Delete a named service * * @todo Remove content-negotiation and/or HAL configuration? * @param string $controllerService * @param bool $recursive * @return true * @throws Exception\RuntimeException */ public function deleteService($controllerService, $recursive = false) { try { $service = $this->fetch($controllerService); } catch (Exception\RuntimeException $e) { throw new Exception\RuntimeException(sprintf('Cannot delete REST service "%s"; not found', $controllerService), 404); } $this->deleteRoute($service); $this->deleteRestConfig($service); $this->deleteContentNegotiationConfig($service); $this->deleteContentValidationConfig($service); $this->deleteHalConfig($service); $this->deleteAuthorizationConfig($service); $this->deleteVersioningConfig($service); $this->deleteServiceManagerConfig($service); if ($recursive) { $reflection = new ReflectionClass($service->resourceClass); Utility::recursiveDelete(dirname($reflection->getFileName())); } return true; }
/** * Delete an existing module * * @param string $module * @param string $path * @param bool $recursive * @return boolean */ public function deleteModule($module, $path = '.', $recursive = false) { $application = (require "{$path}/config/application.config.php"); if (!is_array($application) || !isset($application['modules']) || !in_array($module, $application['modules'], true)) { // Module does not exist in configuration; nothing to do return true; } $modules = array_filter($application['modules'], function ($value) use($module) { return $module !== $value; }); $application['modules'] = $modules; if (!$this->writeApplicationConfig($application, $path)) { // error writing application config return false; } if (!$recursive) { // Not a recursive deletion? done return true; } $modulePath = sprintf('%s/module/%s', $path, $module); if (!file_exists($modulePath)) { // module path does not exist; we can be done. return true; } Utility::recursiveDelete($modulePath); return true; }
/** * Delete a service * * @param RpcServiceEntity $entity * @param bool $recursive * @return true * @throws Exception\RuntimeException */ public function deleteService(RpcServiceEntity $entity, $recursive = false) { $serviceName = $entity->controllerServiceName; $routeName = $entity->routeName; $this->deleteRouteConfig($routeName, $serviceName); $this->deleteRpcConfig($serviceName); $this->deleteContentNegotiationConfig($serviceName); $this->deleteContentValidationConfig($serviceName); $this->deleteVersioningConfig($routeName, $serviceName); $this->deleteAuthorizationConfig($serviceName); $this->deleteControllersConfig($serviceName); if ($recursive) { $className = substr($entity->controllerServiceName, 0, strrpos($entity->controllerServiceName, '\\')) . '\\' . $entity->serviceName . 'Controller'; if (!class_exists($className)) { throw new Exception\RuntimeException(sprintf('I cannot determine the class name, tried with "%s"', $className), 400); } $reflection = new ReflectionClass($className); Utility::recursiveDelete(dirname($reflection->getFileName())); } return true; }