class MetadataMinifier
Same name in this branch
- 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\MetadataMinifierView 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 |