Semantic version
The SemanticVersion class allow to parse, compare and manimulate semantic version numbers
Example
Conversions
$sv = new SemanticVersion ('1.2.3-alpha+20180714');
echo ($sv->major); // "1"
echo ($sv->prerelease); // "alpha"
echo ($sv->slice ("major", "patch")); // "1.2.3"
echo ($sv->getIntegerVValue()); // 10203 (10000 * major + 100 * minor + patch)
$higher = new SemanticVersion ("2.1.0");
echo (SemanticVersion::compareVersion ($sv, $higher)); // a value < 0
Comparison
$a = new SemanticVersion ('1.0.0')
$b = new SemanticVersion ('1.0.0-alpha.2')
$c = $a->compare ($b); // > 0
// Or
$c = SemanticVersion::compareVersions (10000, '1.0.0-alpha.1');