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\CommandCode
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);
}