/** * Allows to check whether a version is in a range between two values. * * @param string $initialVersion * @param string $finalVersion * @param array $versions Item[] * @return Item[] */ public static function between($initialVersion, $finalVersion, $versions) { $versions = self::sortAsc($versions); if (!is_object($initialVersion)) { $initialVersion = new self($initialVersion); } if (!is_object($finalVersion)) { $finalVersion = new self($finalVersion); } $betweenVersions = array(); if ($initialVersion->getStamp() == $finalVersion->getStamp()) { return $betweenVersions; // nothing to do } if ($initialVersion->getStamp() < $finalVersion->getStamp()) { $versions = self::sortAsc($versions); } else { $versions = self::sortDesc($versions); list($initialVersion, $finalVersion) = array($finalVersion, $initialVersion); } foreach ($versions as $version) { /** @var Item $version */ if ($version->getStamp() >= $initialVersion->getStamp() && $version->getStamp() <= $finalVersion->getStamp()) { $betweenVersions[] = $version; } } return $betweenVersions; }
/** * Allows to check whether a version is in a range between two values. * * @param string $initialVersion * @param string $finalVersion * @param array $versions * @return boolean */ public static function between($initialVersion, $finalVersion, $versions) { if (!is_object($initialVersion)) { $initialVersion = new self($initialVersion); } if (!is_object($finalVersion)) { $finalVersion = new self($finalVersion); } if ($initialVersion->getStamp() > $finalVersion->getStamp()) { list($initialVersion, $finalVersion) = array($finalVersion, $initialVersion); } $betweenVersions = array(); foreach ($versions as $version) { if ($version->getStamp() >= $initialVersion->getStamp() && $version->getStamp() <= $finalVersion->getStamp()) { $betweenVersions[] = $version; } } return self::sortAsc($betweenVersions); }