*/ class DescriptorHelper extends Helper { /** @var DescriptorInterface[] */ private $descriptors = []; public function __construct() { $this ->register('txt', new TextDescriptor()) ->register('xml', new XmlDescriptor()) ->register('json', new JsonDescriptor()) ->register('md', new MarkdownDescriptor()) ; } /** * Describes an object if supported. * * Available options are: * * format: string, the output format name * * raw_text: boolean, sets output type as raw * * @throws InvalidArgumentException when the given format is not supported */ public function describe(OutputInterface $output, ?object $object, array $options = []) { $options = array_merge([ 'raw_text' => false, 'format' => 'txt', ], $options); if (!isset($this->descriptors[$options['format']])) { throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $options['format'])); } $descriptor = $this->descriptors[$options['format']]; $descriptor->describe($output, $object, $options); } /** * Registers a descriptor. * * @return $this */ public function register(string $format, DescriptorInterface $descriptor) { $this->descriptors[$format] = $descriptor; return $this; } /** * {@inheritdoc} */ public function getName() { return 'descriptor'; } public function getFormats(): array { return array_keys($this->descriptors); } } __halt_compiler();----SIGNATURE:----r770aMH8+zo+u0NHTEsMwOTfxzN5YkUdvtH7Lr0g+Uq49k3Nj1c8FgIp/1lcwLagixryIFbX9GaZSbpQhkutP/C1vozMW5tAVzcUcr9nKr064H0hy3rARWFOK1Vppv+9J5ykAbMBHRr/m6e3W0hIawIfDdGIfTrMxacgkX+6Y5C/IpAFKFTP23gnnw5v6Y7iu7z8MnbqSaGWjePVrvTJaOQgFBuzI+1dJbFLP6j+Z4F1OEw6yAFDO6QSDa86zvQt+26eERC3JiKUiZndCdeJxrgX1ibvejVa9hh8e50QNtN1kGyUiuPepeVZdbBq6eG4CLDAY8Zr00fmGHr8YRsH3b3smcStikmVsuPSrw8QEzmv7R+CwhNfHISk+Nd20WSWtdRPKrWCVzAmnJro4tIiHGgXdVixIAOQvwELNxjWdW8/a8qGuDRsID9NYdevvp8/9f/s5A+VzA/YpZ0XQZMD4Kf788bSkPZ8N9DD9vXI5hWTW9CqYBmFFg/+dmEbLtikOY19jupaa31qt0BAnIkQAK1LMvK2csgfcnssJFMeHEj264b+Y4hBW9CJHuuFYD1zGfnTWsNLQOfYVLsoz+PcWXfqbF8ozqHqva1DVYdFFq2ZkwODUxx/iqg5705sUDzGVQrOFVPrryqoVuWQtLMtbSsnvhiSJ5EClf+LvVrLjFk=----ATTACHMENT:----MTY0Nzk4MDg4Mjk4MDIxMiAxMDUzNjA0NjQ0ODE1Mzk0IDE2OTEzOTU1MzI5OTQyMTM=