b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / vendor / composer / semver / src /
Filename/home/a/home/dev2.destoffenstraat.com/vendor/composer/semver/src/Semver.php
Size3.14 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified03-Dec-2020 16:47
Last accessed22-Aug-2025 19:50
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php

/*
* This file is part of composer/semver.
*
* (c) Composer <https://github.com/composer>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/

namespace Composer\Semver;

use Composer\Semver\Constraint\Constraint;

class Semver
{
const SORT_ASC = 1;
const SORT_DESC = -1;

/** @var VersionParser */
private static $versionParser;

/**
* Determine if given version satisfies given constraints.
*
* @param string $version
* @param string $constraints
*
* @return bool
*/
public static function satisfies($version, $constraints)
{
if (null === self::$versionParser) {
self::$versionParser = new VersionParser();
}

$versionParser = self::$versionParser;
$provider = new Constraint('==', $versionParser->normalize($version));
$parsedConstraints = $versionParser->parseConstraints($constraints);

return $parsedConstraints->matches($provider);
}

/**
* Return all versions that satisfy given constraints.
*
* @param array $versions
* @param string $constraints
*
* @return array
*/
public static function satisfiedBy(array $versions, $constraints)
{
$versions = array_filter($versions, function ($version) use ($constraints) {
return Semver::satisfies($version, $constraints);
});

return array_values($versions);
}

/**
* Sort given array of versions.
*
* @param array $versions
*
* @return array
*/
public static function sort(array $versions)
{
return self::usort($versions, self::SORT_ASC);
}

/**
* Sort given array of versions in reverse.
*
* @param array $versions
*
* @return array
*/
public static function rsort(array $versions)
{
return self::usort($versions, self::SORT_DESC);
}

/**
* @param array $versions
* @param int $direction
*
* @return array
*/
private static function usort(array $versions, $direction)
{
if (null === self::$versionParser) {
self::$versionParser = new VersionParser();
}

$versionParser = self::$versionParser;
$normalized = array();

// Normalize outside of usort() scope for minor performance increase.
// Creates an array of arrays: [[normalized, key], ...]
foreach ($versions as $key => $version) {
$normalized[] = array($versionParser->normalize($version), $key);
}

usort($normalized, function (array $left, array $right) use ($direction) {
if ($left[0] === $right[0]) {
return 0;
}

if (Comparator::lessThan($left[0], $right[0])) {
return -$direction;
}

return $direction;
});

// Recreate input array, using the original indexes which are now in sorted order.
$sorted = array();
foreach ($normalized as $item) {
$sorted[] = $versions[$item[1]];
}

return $sorted;
}
}