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
Go to homepage
Star us on Github