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

Breadcrumb

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

function MetadataMinifier::minify

Minifies an array of versions into a set of version diffs

Parameters

array[] $versions A list of version arrays:

Return value

array[] A list of versions minified with each array only containing the differences to the previous one

File

vendor/composer/metadata-minifier/src/MetadataMinifier.php, line 54

Class

MetadataMinifier

Namespace

Composer\MetadataMinifier

Code

public static function minify(array $versions) {
    $minifiedVersions = array();
    $lastKnownVersionData = null;
    foreach ($versions as $version) {
        if (!$lastKnownVersionData) {
            $lastKnownVersionData = $version;
            $minifiedVersions[] = $version;
            continue;
        }
        $minifiedVersion = array();
        // add any changes from the previous version
        foreach ($version as $key => $val) {
            if (!isset($lastKnownVersionData[$key]) || $lastKnownVersionData[$key] !== $val) {
                $minifiedVersion[$key] = $val;
                $lastKnownVersionData[$key] = $val;
            }
        }
        // store any deletions from the previous version for keys missing in current one
        foreach ($lastKnownVersionData as $key => $val) {
            if (!isset($version[$key])) {
                $minifiedVersion[$key] = "__unset";
                unset($lastKnownVersionData[$key]);
            }
        }
        $minifiedVersions[] = $minifiedVersion;
    }
    return $minifiedVersions;
}
RSS feed
Powered by Drupal