/** * @param string $className * @return mixed */ protected function getObject($className) { if (empty($className) || !is_string($className)) { throw new \RuntimeException('Invalid class name'); } if (!class_exists($className)) { return null; } return $this->factory->factory($className); }
protected function execute(InputInterface $input, OutputInterface $output) { $object = $this->factory->factory($input->getArgument('class')); if ($object instanceof ConfigurableInterface) { $elementFactory = new Form\ElementFactory($this->actionRepository, $this->connectionRepository); $builder = new Form\Builder(); $object->configure($builder, $elementFactory); $fields = $builder->getForm(); $rows = []; foreach ($fields->getElements() as $element) { $type = substr(strrchr(get_class($element), '\\'), 1); $details = $this->getDetails($element); if (strlen($details) > 32) { $details = substr($details, 0, 32) . ' [...]'; } $rows[] = [$element->name, $type, $details]; } $table = new Table($output); $table->setHeaders(['Name', 'Type', 'Details'])->setRows($rows); $table->render($output); } else { $output->writeln('The object is not configurable'); } }