]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - vendor/composer/semver/src/Comparator.php
MediaWiki 1.30.2
[autoinstalls/mediawiki.git] / vendor / composer / semver / src / Comparator.php
1 <?php
2
3 /*
4  * This file is part of composer/semver.
5  *
6  * (c) Composer <https://github.com/composer>
7  *
8  * For the full copyright and license information, please view
9  * the LICENSE file that was distributed with this source code.
10  */
11
12 namespace Composer\Semver;
13
14 use Composer\Semver\Constraint\Constraint;
15
16 class Comparator
17 {
18     /**
19      * Evaluates the expression: $version1 > $version2.
20      *
21      * @param string $version1
22      * @param string $version2
23      *
24      * @return bool
25      */
26     public static function greaterThan($version1, $version2)
27     {
28         return self::compare($version1, '>', $version2);
29     }
30
31     /**
32      * Evaluates the expression: $version1 >= $version2.
33      *
34      * @param string $version1
35      * @param string $version2
36      *
37      * @return bool
38      */
39     public static function greaterThanOrEqualTo($version1, $version2)
40     {
41         return self::compare($version1, '>=', $version2);
42     }
43
44     /**
45      * Evaluates the expression: $version1 < $version2.
46      *
47      * @param string $version1
48      * @param string $version2
49      *
50      * @return bool
51      */
52     public static function lessThan($version1, $version2)
53     {
54         return self::compare($version1, '<', $version2);
55     }
56
57     /**
58      * Evaluates the expression: $version1 <= $version2.
59      *
60      * @param string $version1
61      * @param string $version2
62      *
63      * @return bool
64      */
65     public static function lessThanOrEqualTo($version1, $version2)
66     {
67         return self::compare($version1, '<=', $version2);
68     }
69
70     /**
71      * Evaluates the expression: $version1 == $version2.
72      *
73      * @param string $version1
74      * @param string $version2
75      *
76      * @return bool
77      */
78     public static function equalTo($version1, $version2)
79     {
80         return self::compare($version1, '==', $version2);
81     }
82
83     /**
84      * Evaluates the expression: $version1 != $version2.
85      *
86      * @param string $version1
87      * @param string $version2
88      *
89      * @return bool
90      */
91     public static function notEqualTo($version1, $version2)
92     {
93         return self::compare($version1, '!=', $version2);
94     }
95
96     /**
97      * Evaluates the expression: $version1 $operator $version2.
98      *
99      * @param string $version1
100      * @param string $operator
101      * @param string $version2
102      *
103      * @return bool
104      */
105     public static function compare($version1, $operator, $version2)
106     {
107         $constraint = new Constraint($operator, $version2);
108
109         return $constraint->matches(new Constraint('==', $version1));
110     }
111 }