Semantic versioning helper library for PHP -- by, Chris Kankiewicz (@PHLAK)
Semantic versioning helper for PHP.
- PHP >= 7.1
composer require phlak/semver
use PHLAK\SemVer;
$version = new SemVer\Version(); // Initilializes to '0.1.0'
Or initialize with a custom version by passing a version string on creation. Accepts any valid semantic version string with or without a preceding 'v'.
$version = new SemVer\Version('v1.2.3-alpha.5-sha.8d31ff4');
$version = new SemVer\Version('v1.2.3-beta.4+007');
echo $version; // '1.2.3-beta.4+007'
echo $version->major; // 1
echo $version->minor; // 2
echo $version->patch; // 3
echo $version->preRelease; // 'beta.4'
echo $version->build; // '007'
$version = new SemVer\Version('v1.2.3');
$version->incrementMajor(); // v1.2.3 -> v2.0.0
$version->incrementMinor(); // v1.2.3 -> v1.3.0
$version->incrementPatch(); // v1.2.3 -> v1.2.4
$version = new SemVer\Version();
$version->setVersion('v1.2.3'); // v1.2.3
$version->setMajor(3); // v1.2.3 -> v3.0.0
$version->setMinor(5); // v1.2.3 -> v1.5.0
$version->setPatch(7); // v1.2.3 -> 1.2.7
$version->setPreRelease('rc.2'); // v1.2.3 -> v1.2.3-rc.2
$version->setBuild('007'); // v1.2.3 -> v1.2.3+007
$version->setPreRelease(null); // v1.2.3-rc.2 -> v1.2.3
$version->setBuild(null); // v1.2.3+007 -> v1.2.3
$version1 = new SemVer('v1.2.3');
$version2 = new SemVer('v3.2.1');
$version1->gt($version2); // false
$version1->lt($version2); // true
$version1->eq($version2); // false
$version1->neq($version2); // true
$version1->gte($version2); // false
$version1->lte($version2); // true
For general help and support join our Slack Workspace.
Please report bugs to the GitHub Issue Tracker.
This project is liscensed under the MIT License.