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

Breadcrumb

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

function Problem::condenseVersionList

Parameters

array<string|int, string> $versions an array of pretty versions, with normalized versions as keys:

Return value

list<string> a list of pretty versions and '...' where versions were removed

2 calls to Problem::condenseVersionList()
Problem::formatDeduplicatedRules in vendor/composer/composer/src/Composer/DependencyResolver/Problem.php
@internal
Problem::getPackageList in vendor/composer/composer/src/Composer/DependencyResolver/Problem.php
@internal

File

vendor/composer/composer/src/Composer/DependencyResolver/Problem.php, line 528

Class

Problem
Represents a problem detected while solving dependencies

Namespace

Composer\DependencyResolver

Code

private static function condenseVersionList(array $versions, int $max, int $maxDev = 16) : array {
    if (count($versions) <= $max) {
        return array_values($versions);
    }
    $filtered = [];
    $byMajor = [];
    foreach ($versions as $version => $pretty) {
        if (0 === stripos((string) $version, 'dev-')) {
            $byMajor['dev'][] = $pretty;
        }
        else {
            $byMajor[Preg::replace('{^(\\d+)\\..*}', '$1', (string) $version)][] = $pretty;
        }
    }
    foreach ($byMajor as $majorVersion => $versionsForMajor) {
        $maxVersions = $majorVersion === 'dev' ? $maxDev : $max;
        if (count($versionsForMajor) > $maxVersions) {
            // output only 1st and last versions
            $filtered[] = $versionsForMajor[0];
            $filtered[] = '...';
            $filtered[] = $versionsForMajor[count($versionsForMajor) - 1];
        }
        else {
            $filtered = array_merge($filtered, $versionsForMajor);
        }
    }
    return $filtered;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal