/** * Writes content to output. * * @param Table $table * @param bool $decorated */ protected function renderTable(Table $table, $decorated = false) { if (!$decorated) { $table->getStyle()->setCellRowFormat('%s'); $table->getStyle()->setCellRowContentFormat('%s'); $table->getStyle()->setCellHeaderFormat('%s'); } $table->render(); }
protected function execute(InputInterface $input, OutputInterface $output) { $composer = $this->getComposer(); $commandEvent = new CommandEvent(PluginEvents::COMMAND, 'licenses', $input, $output); $composer->getEventDispatcher()->dispatch($commandEvent->getName(), $commandEvent); $root = $composer->getPackage(); $repo = $composer->getRepositoryManager()->getLocalRepository(); if ($input->getOption('no-dev')) { $packages = $this->filterRequiredPackages($repo, $root); } else { $packages = $this->appendPackages($repo->getPackages(), array()); } ksort($packages); $io = $this->getIO(); switch ($format = $input->getOption('format')) { case 'text': $io->write('Name: <comment>' . $root->getPrettyName() . '</comment>'); $io->write('Version: <comment>' . $root->getFullPrettyVersion() . '</comment>'); $io->write('Licenses: <comment>' . (implode(', ', $root->getLicense()) ?: 'none') . '</comment>'); $io->write('Dependencies:'); $io->write(''); $table = new Table($output); $table->setStyle('compact'); $table->getStyle()->setVerticalBorderChar(''); $table->getStyle()->setCellRowContentFormat('%s '); $table->setHeaders(array('Name', 'Version', 'License')); foreach ($packages as $package) { $table->addRow(array($package->getPrettyName(), $package->getFullPrettyVersion(), implode(', ', $package->getLicense()) ?: 'none')); } $table->render(); break; case 'json': $dependencies = array(); foreach ($packages as $package) { $dependencies[$package->getPrettyName()] = array('version' => $package->getFullPrettyVersion(), 'license' => $package->getLicense()); } $io->write(JsonFile::encode(array('name' => $root->getPrettyName(), 'version' => $root->getFullPrettyVersion(), 'license' => $root->getLicense(), 'dependencies' => $dependencies))); break; default: throw new \RuntimeException(sprintf('Unsupported format "%s". See help for supported formats.', $format)); } }
/** * write composer.list */ protected function writeLibraryList($packages) { $fp = fopen('composer.list', 'wb'); $output = new \Symfony\Component\Console\Output\StreamOutput($fp); $table = new Table($output); $table->setStyle('compact'); $table->getStyle()->setVerticalBorderChar(''); $table->getStyle()->setCellRowContentFormat('%s '); $table->setHeaders(array('Name', 'Version', 'License')); foreach ($packages as $name => $p) { $table->addRow(array($name, $p['version'], implode(', ', $p['license']) ?: 'none')); } $table->render(); unset($table); fclose($fp); }
/** * Sets cell padding type. * * @param int $padType STR_PAD_* * * @return TableHelper */ public function setPadType($padType) { $this->table->getStyle()->setPadType($padType); return $this; }
/** * {@inheritdoc} */ protected function describeEventDispatcherListeners(EventDispatcherInterface $eventDispatcher, array $options = array()) { $event = array_key_exists('event', $options) ? $options['event'] : null; $label = 'Registered listeners'; if (null !== $event) { $label .= sprintf(' for event <info>%s</info>', $event); } else { $label .= ' by event'; } $this->writeText($this->formatSection('event_dispatcher', $label) . "\n", $options); $registeredListeners = $eventDispatcher->getListeners($event); if (null !== $event) { $this->writeText("\n"); $table = new Table($this->getOutput()); $table->getStyle()->setCellHeaderFormat('%s'); $table->setHeaders(array('Order', 'Callable')); foreach ($registeredListeners as $order => $listener) { $table->addRow(array(sprintf('#%d', $order + 1), $this->formatCallable($listener))); } $this->renderTable($table, true); } else { ksort($registeredListeners); foreach ($registeredListeners as $eventListened => $eventListeners) { $this->writeText(sprintf("\n<info>[Event]</info> %s\n", $eventListened), $options); $table = new Table($this->getOutput()); $table->getStyle()->setCellHeaderFormat('%s'); $table->setHeaders(array('Order', 'Callable')); foreach ($eventListeners as $order => $eventListener) { $table->addRow(array(sprintf('#%d', $order + 1), $this->formatCallable($eventListener))); } $this->renderTable($table, true); } } }
/** * Render a Console Table view from listeners collection * * @param OutputInterface $output * @param array<EventListener> $eventListeners a collection of event listeners * * @return void intented to render a Table */ private function renderTable(OutputInterface $output, array $eventListeners) { $table = new Table($output); $table->getStyle()->setCellHeaderFormat('%s'); $table->setHeaders(array('Order', 'Callable')); $order = 1; foreach ($eventListeners as $eventListened) { $table->addRow(array(sprintf('# %d', $order++), $this->formatCallable($eventListened))); } $table->render(); }
/** * Assembles and prints a bottom-up table of the dependencies. * * @param OutputInterface $output * @param array $results */ protected function printTable(OutputInterface $output, $results) { $table = array(); $doubles = array(); do { $queue = array(); $rows = array(); foreach ($results as $result) { /** * @var PackageInterface $package * @var Link $link */ list($package, $link, $children) = $result; $unique = (string) $link; if (isset($doubles[$unique])) { continue; } $doubles[$unique] = true; $version = strpos($package->getPrettyVersion(), 'No version set') === 0 ? '-' : $package->getPrettyVersion(); $rows[] = array($package->getPrettyName(), $version, $link->getDescription(), sprintf('%s (%s)', $link->getTarget(), $link->getPrettyConstraint())); if ($children) { $queue = array_merge($queue, $children); } } $results = $queue; $table = array_merge($rows, $table); } while (!empty($results)); // Render table $renderer = new Table($output); $renderer->setStyle('compact'); $renderer->getStyle()->setVerticalBorderChar(''); $renderer->getStyle()->setCellRowContentFormat('%s '); $renderer->setRows($table)->render(); }
/** * @param array $array */ private function renderEventListenerTable(array $eventListeners) { $table = new Table($this->getOutput()); $table->getStyle()->setCellHeaderFormat('%s'); $table->setHeaders(array('Order', 'Callable', 'Priority')); krsort($eventListeners); $order = 1; foreach ($eventListeners as $priority => $listeners) { foreach ($listeners as $listener) { $table->addRow(array(sprintf('#%d', $order++), $this->formatCallable($listener), $priority)); } } $table->render(); }
/** * Render the modman paths in a nice format * * @param \Symfony\Component\Console\Output\OutputInterface $output * @param array $paths * @param string $prefix */ protected function outputPaths(OutputInterface $output, $paths, $prefix = '') { // Make sure the prefix ends with 1 slash $prefix = $prefix ? rtrim($prefix, '/') . '/' : ''; $rows = array(); foreach ($paths as $path) { // Add dir prefix + space suffix $rows[] = array($prefix . $path . ' ', $path); } // Write output in nice format $table = new Table($output); $table->setRows($rows); // Set spaceless $table->setStyle('compact'); $table->getStyle()->setBorderFormat(''); // Output to screen $table->render(); }
public function detailsTable(array $rows) { $rows = array_map(function ($row) { $row[0] = sprintf('<info>%s:</>', $row[0]); return $row; }, $rows); $table = new Table($this->output); $table->getStyle()->setPaddingChar(' ')->setHorizontalBorderChar('')->setVerticalBorderChar(' ')->setCrossingChar('')->setCellHeaderFormat('%s')->setCellRowFormat('%s')->setCellRowContentFormat('%s')->setBorderFormat('%s')->setPadType(STR_PAD_RIGHT); $table->setRows($rows); $table->render(); $this->newLine(); }
private function detailsTable(array $rows, $bordered = false) { if (!$rows) { return ''; } $rows = array_map(function ($row) { $row[0] = sprintf('<info>%s:</info>', $row[0]); return $row; }, $rows); $table = new Table($this->bufferedOut); $table->getStyle()->setPaddingChar(' ')->setHorizontalBorderChar($bordered ? '-' : '')->setVerticalBorderChar(' ')->setCrossingChar('-')->setCellHeaderFormat('%s')->setCellRowFormat('%s')->setCellRowContentFormat('%s')->setBorderFormat('%s')->setPadType(STR_PAD_RIGHT); $table->setRows($rows); $table->render(); return $this->bufferedOut->fetch(); }