@@ -101,23 +101,33 @@ public static function apply(?string $op, $u, $c): bool
101
101
}
102
102
break ;
103
103
case "semVerEqual " :
104
- $ uVer = self ::parseSemVer ($ u );
105
- $ cVer = self ::parseSemVer ($ c );
106
- return ($ uVer != null ) && ($ cVer != null ) && $ uVer ->comparePrecedence ($ cVer ) == 0 ;
104
+ return self ::semver_operator ($ u , $ c , 0 );
107
105
case "semVerLessThan " :
108
- $ uVer = self ::parseSemVer ($ u );
109
- $ cVer = self ::parseSemVer ($ c );
110
- return ($ uVer != null ) && ($ cVer != null ) && $ uVer ->comparePrecedence ($ cVer ) < 0 ;
106
+ return self ::semver_operator ($ u , $ c , -1 );
111
107
case "semVerGreaterThan " :
112
- $ uVer = self ::parseSemVer ($ u );
113
- $ cVer = self ::parseSemVer ($ c );
114
- return ($ uVer != null ) && ($ cVer != null ) && $ uVer ->comparePrecedence ($ cVer ) > 0 ;
108
+ return self ::semver_operator ($ u , $ c , 1 );
115
109
}
116
110
} catch (Exception $ ignored ) {
117
111
}
118
112
return false ;
119
113
}
120
114
115
+ /**
116
+ * @param mixed|null $u
117
+ * @param mixed|null $c
118
+ * @param int $expectedComparisonResult
119
+ * @return bool
120
+ */
121
+ private static function semver_operator ($ u , $ c , $ expectedComparisonResult ): bool
122
+ {
123
+ if (!is_string ($ u ) || !is_string ($ c )) {
124
+ return false ;
125
+ }
126
+ $ uVer = self ::parseSemVer ($ u );
127
+ $ cVer = self ::parseSemVer ($ c );
128
+ return ($ uVer != null ) && ($ cVer != null ) && $ uVer ->comparePrecedence ($ cVer ) == $ expectedComparisonResult ;
129
+ }
130
+
121
131
/**
122
132
* A stricter version of the built-in is_numeric checker.
123
133
*
0 commit comments