generatorLocator = $generatorLocator; parent::__construct(); } /** * Configures the dump command. */ protected function configure() { $this ->setDescription('Dumps documentation in OpenAPI JSON format') ->addOption('area', '', InputOption::VALUE_OPTIONAL, '', 'default') ->addOption('no-pretty', '', InputOption::VALUE_NONE, 'Do not pretty format output') ; } /** * @throws InvalidArgumentException If the area to dump is not valid * * @return int|void */ protected function execute(InputInterface $input, OutputInterface $output) { $area = $input->getOption('area'); if (!$this->generatorLocator->has($area)) { throw new InvalidArgumentException(sprintf('Area "%s" is not supported.', $area)); } $spec = $this->generatorLocator->get($area)->generate(); if ($input->hasParameterOption(['--no-pretty'])) { $output->writeln(json_encode($spec)); } else { $output->writeln(json_encode($spec, JSON_PRETTY_PRINT)); } return 0; } }