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

Breadcrumb

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

class MetadataMinifier

Same name in this branch
  1. 11.1.x vendor/composer/composer/src/Composer/Util/MetadataMinifier.php \Composer\Util\MetadataMinifier

Hierarchy

  • class \Composer\MetadataMinifier\MetadataMinifier

Expanded class hierarchy of MetadataMinifier

1 file declares its use of MetadataMinifier
ComposerRepository.php in vendor/composer/composer/src/Composer/Repository/ComposerRepository.php

File

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

Namespace

Composer\MetadataMinifier
View source
class MetadataMinifier {
    
    /**
     * Expands an array of minified versions back to their original format
     *
     * @param array[] $versions A list of minified version arrays
     * @return array[] A list of version arrays
     */
    public static function expand(array $versions) {
        $expanded = array();
        $expandedVersion = null;
        foreach ($versions as $versionData) {
            if (!$expandedVersion) {
                $expandedVersion = $versionData;
                $expanded[] = $expandedVersion;
                continue;
            }
            // add any changes from the previous version to the expanded one
            foreach ($versionData as $key => $val) {
                if ($val === '__unset') {
                    unset($expandedVersion[$key]);
                }
                else {
                    $expandedVersion[$key] = $val;
                }
            }
            $expanded[] = $expandedVersion;
        }
        return $expanded;
    }
    
    /**
     * Minifies an array of versions into a set of version diffs
     *
     * @param array[] $versions A list of version arrays
     * @return array[] A list of versions minified with each array only containing the differences to the previous one
     */
    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;
    }

}

Members

Title Sort descending Modifiers Object type Summary
MetadataMinifier::expand public static function Expands an array of minified versions back to their original format
MetadataMinifier::minify public static function Minifies an array of versions into a set of version diffs

API Navigation

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