/**
  * 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);
 }
Example #4
0
 /**
  * Sets cell padding type.
  *
  * @param int $padType STR_PAD_*
  *
  * @return TableHelper
  */
 public function setPadType($padType)
 {
     $this->table->getStyle()->setPadType($padType);
     return $this;
 }
Example #5
0
 /**
  * {@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();
 }
Example #8
0
 /**
  * @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();
 }
Example #10
0
 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();
 }