_registry = $registry; } public function getName() { return 'Manifest'; } public function show() { $manifestRepository = $this->_registry->getManifestRepository(); $response = $this->_registry->getResponse(); $metadataTree = array(); $longestAttrNameLen = 50; foreach ($manifestRepository as $metadata) { $metadataType = $metadata->getType(); $metadataName = $metadata->getName(); $metadataAttrs = $metadata->getAttributes('attributesParent'); if (!$metadataAttrs) { $metadataAttrs = '(None)'; } else { $metadataAttrs = urldecode(http_build_query($metadataAttrs, null, ', ')); } if (!array_key_exists($metadataType, $metadataTree)) { $metadataTree[$metadataType] = array(); } if (!array_key_exists($metadataName, $metadataTree[$metadataType])) { $metadataTree[$metadataType][$metadataName] = array(); } if (!array_key_exists($metadataAttrs, $metadataTree[$metadataType][$metadataName])) { $metadataTree[$metadataType][$metadataName][$metadataAttrs] = array(); } $longestAttrNameLen = (strlen($metadataAttrs) > $longestAttrNameLen) ? strlen($metadataAttrs) : $longestAttrNameLen; $metadataValue = $metadata->getValue(); if (is_array($metadataValue) && count($metadataValue) > 0) { $metadataValue = urldecode(http_build_query($metadataValue, null, ', ')); } elseif (is_array($metadataValue)) { $metadataValue = '(empty array)'; } $metadataTree[$metadataType][$metadataName][$metadataAttrs][] = $metadataValue; } foreach ($metadataTree as $metadataType => $metadatasByName) { $response->appendContent($metadataType); foreach ($metadatasByName as $metadataName => $metadatasByAttributes) { $response->appendContent(" " . $metadataName); foreach ($metadatasByAttributes as $metadataAttributeName => $metadataValues) { foreach ($metadataValues as $metadataValue) { $string = sprintf(" %-{$longestAttrNameLen}.{$longestAttrNameLen}s : ", $metadataAttributeName) . $metadataValue; $response->appendContent($string); } } } } } }