Chris@0: getAnnotations(); Chris@0: $path = $allAnnotations['_path']; Chris@0: $className = $allAnnotations['_classname']; Chris@0: Chris@0: // Include the minimum information for command info (including placeholder records) Chris@0: $info = [ Chris@0: 'schema' => CommandInfo::SERIALIZATION_SCHEMA_VERSION, Chris@0: 'class' => $className, Chris@0: 'method_name' => $commandInfo->getMethodName(), Chris@0: 'mtime' => filemtime($path), Chris@17: 'injected_classes' => [], Chris@0: ]; Chris@0: Chris@0: // If this is a valid method / hook, then add more information. Chris@0: if ($commandInfo->valid()) { Chris@0: $info += [ Chris@0: 'name' => $commandInfo->getName(), Chris@0: 'description' => $commandInfo->getDescription(), Chris@0: 'help' => $commandInfo->getHelp(), Chris@0: 'aliases' => $commandInfo->getAliases(), Chris@0: 'annotations' => $commandInfo->getRawAnnotations()->getArrayCopy(), Chris@0: 'example_usages' => $commandInfo->getExampleUsages(), Chris@0: 'return_type' => $commandInfo->getReturnType(), Chris@0: ]; Chris@0: $info['arguments'] = $this->serializeDefaultsWithDescriptions($commandInfo->arguments()); Chris@0: $info['options'] = $this->serializeDefaultsWithDescriptions($commandInfo->options()); Chris@17: $info['injected_classes'] = $commandInfo->getInjectedClasses(); Chris@0: } Chris@0: Chris@0: return $info; Chris@0: } Chris@0: Chris@0: protected function serializeDefaultsWithDescriptions(DefaultsWithDescriptions $defaults) Chris@0: { Chris@0: $result = []; Chris@0: foreach ($defaults->getValues() as $key => $val) { Chris@0: $result[$key] = [ Chris@0: 'description' => $defaults->getDescription($key), Chris@0: ]; Chris@0: if ($defaults->hasDefault($key)) { Chris@0: $result[$key]['default'] = $val; Chris@0: } Chris@0: } Chris@0: return $result; Chris@0: } Chris@0: }