Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. BaseDependencyCommand.php

function BaseDependencyCommand::printTable

Assembles and prints a bottom-up table of the dependencies.

Parameters

array{PackageInterface, Link, array<mixed>|false}[] $results:

1 call to BaseDependencyCommand::printTable()
BaseDependencyCommand::doExecute in vendor/composer/composer/src/Composer/Command/BaseDependencyCommand.php
Execute the command.

File

vendor/composer/composer/src/Composer/Command/BaseDependencyCommand.php, line 202

Class

BaseDependencyCommand
Base implementation for commands mapping dependency relationships.

Namespace

Composer\Command

Code

protected function printTable(OutputInterface $output, array $results) : void {
    $table = [];
    $doubles = [];
    do {
        $queue = [];
        $rows = [];
        foreach ($results as $result) {
            
            /**
             * @var PackageInterface $package
             * @var Link             $link
             */
            [
                $package,
                $link,
                $children,
            ] = $result;
            $unique = (string) $link;
            if (isset($doubles[$unique])) {
                continue;
            }
            $doubles[$unique] = true;
            $version = $package->getPrettyVersion() === RootPackage::DEFAULT_PRETTY_VERSION ? '-' : $package->getPrettyVersion();
            $packageUrl = PackageInfo::getViewSourceOrHomepageUrl($package);
            $nameWithLink = $packageUrl !== null ? '<href=' . OutputFormatter::escape($packageUrl) . '>' . $package->getPrettyName() . '</>' : $package->getPrettyName();
            $rows[] = [
                $nameWithLink,
                $version,
                $link->getDescription(),
                sprintf('%s (%s)', $link->getTarget(), $link->getPrettyConstraint()),
            ];
            if (is_array($children)) {
                $queue = array_merge($queue, $children);
            }
        }
        $results = $queue;
        $table = array_merge($rows, $table);
    } while (\count($results) > 0);
    $this->renderTable($table, $output);
}
RSS feed
Powered by Drupal