/** * Describes a specific API type. * * @param Console\Input\InputInterface $input The input interface * @param Console\Output\OutputInterface $output The output interface * @throws PartKeepr\Console\Commands\Exceptions\ServiceCallNotFoundException If the call was not found in the service * @see Console\Command\Command */ protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output) { $type = $input->getArgument("type"); $className = "PartKeepr\\" . $type . "\\" . $type; $reflector = new TypeReflector($className); $output->writeln(sprintf("<info>%s</info>: %s", $reflector->getName(), $reflector->getDescription())); $output->writeln(""); $output->writeln($reflector->getDocumentation()); $output->writeln(""); $output->writeln("<info>Output Fields:</info>"); $head = array('Name', 'Type', 'Description'); $outputParameterTable = array(); foreach ($reflector->getOutputFields() as $parameter) { $outputParameterTable[] = array($parameter->getName(), $parameter->getType(), $parameter->getDescription()); } $table = new TablePrinter($output); $table->setHeader($head); $table->setBody($outputParameterTable); $table->output(); }
/** * Outputs the parameter table * * @param \PartKeepr\Service\ServiceCallReflector $call The reflected call * @param \Symfony\Component\Console\Output\OutputInterface $output The output interface */ private function outputParameterTable(ServiceCallReflector $call, Console\Output\OutputInterface $output) { $output->writeln("<info>Parameters:</info>"); $head = array('Name', 'Required', 'Type', 'Description'); $parameterTable = array(); foreach ($call->getParameters() as $parameter) { $parameterTable[] = array($parameter->getName(), $parameter->getRequiredFlag() ? 'Yes' : 'No', $parameter->getType(), $parameter->getDescription()); } $table = new TablePrinter($output); $table->setHeader($head); $table->setBody($parameterTable); $table->output(); }