/** * Gets a module DOM element from a module * @param zibo\library\xml\dom\Document $dom the document of the new element * @param zibo\admin\model\Module $module The module for the DOM element * @param string $elementName Name of the new module DOM element * @return DOMElement DOM element representing the provided module */ private function getModuleElementFromModule(Document $dom, Module $module, $elementName) { $element = $dom->createElementNS(self::XML_NAMESPACE, $elementName); $element->setAttribute(self::ATTRIBUTE_NAMESPACE, $module->getNamespace()); $element->setAttribute(self::ATTRIBUTE_NAME, $module->getName()); $element->setAttribute(self::ATTRIBUTE_VERSION, $module->getVersion()); $ziboVersion = $module->getZiboVersion(); if (!empty($ziboVersion)) { $element->setAttribute(self::ATTRIBUTE_VERSION_ZIBO, $ziboVersion); } $path = $module->getPath(); if (!empty($path)) { $element->setAttribute(self::ATTRIBUTE_PATH, $path->getPath()); } $dependencies = $module->getDependencies(); foreach ($dependencies as $dependency) { $dependencyElement = $this->getModuleElementFromModule($dom, $dependency, self::TAG_DEPENDENCY); $element->appendChild($dependencyElement); } return $element; }
/** * Removes the usage of the provided module from all the module's dependencies * @param Module $module * @return null */ private function removeUsage(Module $module) { $moduleDependencies = $module->getDependencies(); foreach ($moduleDependencies as $moduleDependency) { $installedDependency = $this->getModule($moduleDependency->getNamespace(), $moduleDependency->getName()); $installedDependency->removeUsage($module); } }
/** * Gets an array with the full module information * @param zibo\admin\module\Module $module The module information * @return array Array with the attributes of the module */ private function getFullModuleArray(Module $module) { $dependencies = $this->getDependencyArray($module->getDependencies()); $versions = $this->getVersionArray($module->getVersions()); $array = $this->getModuleArray($module); if ($dependencies) { $array[RepositoryModule::TAG_DEPENDENCY] = $dependencies; } if ($versions) { $array[RepositoryModule::TAG_VERSIONS] = $versions; } return $array; }