Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view Chris@0: * the LICENSE file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Composer\Semver; Chris@0: Chris@0: use Composer\Semver\Constraint\Constraint; Chris@0: Chris@0: class Comparator Chris@0: { Chris@0: /** Chris@0: * Evaluates the expression: $version1 > $version2. Chris@0: * Chris@0: * @param string $version1 Chris@0: * @param string $version2 Chris@0: * Chris@0: * @return bool Chris@0: */ Chris@0: public static function greaterThan($version1, $version2) Chris@0: { Chris@0: return self::compare($version1, '>', $version2); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Evaluates the expression: $version1 >= $version2. Chris@0: * Chris@0: * @param string $version1 Chris@0: * @param string $version2 Chris@0: * Chris@0: * @return bool Chris@0: */ Chris@0: public static function greaterThanOrEqualTo($version1, $version2) Chris@0: { Chris@0: return self::compare($version1, '>=', $version2); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Evaluates the expression: $version1 < $version2. Chris@0: * Chris@0: * @param string $version1 Chris@0: * @param string $version2 Chris@0: * Chris@0: * @return bool Chris@0: */ Chris@0: public static function lessThan($version1, $version2) Chris@0: { Chris@0: return self::compare($version1, '<', $version2); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Evaluates the expression: $version1 <= $version2. Chris@0: * Chris@0: * @param string $version1 Chris@0: * @param string $version2 Chris@0: * Chris@0: * @return bool Chris@0: */ Chris@0: public static function lessThanOrEqualTo($version1, $version2) Chris@0: { Chris@0: return self::compare($version1, '<=', $version2); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Evaluates the expression: $version1 == $version2. Chris@0: * Chris@0: * @param string $version1 Chris@0: * @param string $version2 Chris@0: * Chris@0: * @return bool Chris@0: */ Chris@0: public static function equalTo($version1, $version2) Chris@0: { Chris@0: return self::compare($version1, '==', $version2); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Evaluates the expression: $version1 != $version2. Chris@0: * Chris@0: * @param string $version1 Chris@0: * @param string $version2 Chris@0: * Chris@0: * @return bool Chris@0: */ Chris@0: public static function notEqualTo($version1, $version2) Chris@0: { Chris@0: return self::compare($version1, '!=', $version2); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Evaluates the expression: $version1 $operator $version2. Chris@0: * Chris@0: * @param string $version1 Chris@0: * @param string $operator Chris@0: * @param string $version2 Chris@0: * Chris@0: * @return bool Chris@0: */ Chris@0: public static function compare($version1, $operator, $version2) Chris@0: { Chris@0: $constraint = new Constraint($operator, $version2); Chris@0: Chris@0: return $constraint->matches(new Constraint('==', $version1)); Chris@0: } Chris@0: }