Version utilities
Inphinit\Utility\Version is a utility for parsing version strings, modifying their components, and comparing versions.
Parse version
use Inphinit\Utility\Version;
$version = new Version('1.0.0');
var_dump($version);
Output:
object(Inphinit\Utility\Version)#37 (2) {
["data":"Inphinit\Utility\Version":private]=>
array(5) {
["major"]=> string(1) "1"
["minor"]=> string(1) "0"
["patch"]=> string(1) "0"
["prerelease"]=> NULL
["build"]=> NULL
}
["cache":"Inphinit\Utility\Version":private]=> NULL
}
Modify properties
use Inphinit\Utility\Version;
$input = '1.0.0';
$version = new Version($input);
$version->major = '2';
$version->minor = '4';
$version->patch = '6';
$version->prerelease = ['a', 'b', 'c'];
$version->build = ['1', '2', '3'];
$output = "{$output}"; // to string
echo "Before: {$input}, after: {$output}";
Check if version string is valid
use Inphinit\Utility\Version;
$input = '1.0.0';
if (Version::valid($input)) {
echo 'Valid version';
} else {
echo 'Invalid version';
}
Compare versions
The Version::compare() method returns -1 if the current version is less than the compared version, returns 0 if they are equivalent, and 1 if it is greater, example:
use Inphinit\Utility\Version;
$beta2 = new Version('1.0.0-beta2');
$dev1 = new Version('1.0.0-dev1');
$release = new Version('1.0.0');
echo '$beta2 compare to $beta2: ', $beta2->compare($beta2), '<br>';
echo '$beta2 compare to $dev1: ', $beta2->compare($dev1), '<br>';
echo '$beta2 compare to $release: ', $beta2->compare($release), '<br>';
echo '$dev1 compare to $beta2: ', $dev1->compare($beta2), '<br>';
echo '$dev1 compare to $release: ', $dev1->compare($release), '<br>';
echo '$release compare to $beta2: ', $release->compare($beta2), '<br>';
echo '$release compare to $dev1: ', $release->compare($dev1), '<br>';
Output:
$beta2 compare to $beta2: 0
$beta2 compare to $dev1: 1
$beta2 compare to $release: -1
$dev1 compare to $beta2: -1
$dev1 compare to $release: -1
$release compare to $beta2: 1
$release compare to $dev1: 1