PHP code example of z4kn4fein / php-semver
1. Go to this page and download the library: Download z4kn4fein/php-semver library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
z4kn4fein / php-semver example snippets
Version::create(3, 5, 2, "alpha", "build");
Version::parse("3.5.2-alpha+build");
use z4kn4fein\SemVer\Version;
$version = Version::parse("2.5.6-alpha.12+build.34");
echo $version->getMajor(); // 2
echo $version->getMinor(); // 5
echo $version->getPatch(); // 6
echo $version->getPreRelease(); // alpha.12
echo $version->getBuildMeta(); // build.34
echo $version->isPreRelease(); // true
echo $version->isStable(); // false
echo $version->withoutSuffixes(); // 2.5.6
echo $version; // 2.5.6-alpha.12+build.34
echo Version::parse("v2.3-alpha"); // exception
echo Version::parse("2.1"); // exception
echo Version::parse("v3"); // exception
echo Version::parse("v2.3-alpha", false); // 2.3.0-alpha
echo Version::parse("2.1", false); // 2.1.0
echo Version::parse("v3", false); // 3.0.0
use z4kn4fein\SemVer\Version;
// with static methods
echo Version::lessThan("2.3.4", "2.4.1"); // true
echo Version::lessThanOrEqual("2.4.1", "2.4.1"); // true
echo Version::greaterThan("2.3.1-alpha.5", "2.3.1-alpha.3"); // true
echo Version::greaterThanOrEqual("3.2.3","3.2.2"); // true
echo Version::equal("3.2.3","3.2.3+build.3"); // true
echo Version::notEqual("3.2.3","2.2.4"); // true
// compare() or compareString()
echo Version::compare(Version::parse("2.3.4"), Version::parse("2.4.1")); // -1
echo Version::compare(Version::parse("2.3.4"), Version::parse("2.3.4")); // 0
echo Version::compare(Version::parse("2.3.4"), Version::parse("2.2.0")); // 1
echo Version::compareString("2.3.4", "2.4.1"); // -1
echo Version::compareString("2.3.4", "2.3.4"); // 0
echo Version::compareString("2.3.4", "2.2.0"); // 1
// with instance methods
$version = Version::parse("2.5.6-alpha.12+build.34");
echo $version->isLessThan(Version::parse("2.3.1")); // false
echo $version->isLessThanOrEqual(Version::parse("2.5.6-alpha.15")); // true
echo $version->isGreaterThan(Version::parse("2.5.6")); // false
echo $version->isLessThanOrEqual(Version::parse("2.5.6-alpha.12")); // true
echo $version->isEqual(Version::parse("2.5.6-alpha.12+build.56")); // true
echo $version->isNotEqual(Version::parse("2.2.4")); // true
use z4kn4fein\SemVer\Version;
$versions = array_map(function(string $version) {
return Version::parse($version);
}, [
"1.0.1",
"1.0.1-alpha",
"1.0.1-alpha.beta",
"1.0.1-alpha.3",
"1.0.1-alpha.2",
"1.1.0",
"1.1.0+build",
]);
$sorted = Version::sort($versions);
// The result:
// "1.0.1-alpha"
// "1.0.1-alpha.2"
// "1.0.1-alpha.3"
// "1.0.1-alpha.beta"
// "1.0.1"
// "1.1.0"
// "1.1.0+build"
use z4kn4fein\SemVer\Version;
$versions = array_map(function(string $version) {
return Version::parse($version);
}, [
"1.0.1",
"1.0.1-alpha",
"1.0.1-alpha.beta",
"1.0.1-alpha.3",
"1.0.1-alpha.2",
"1.1.0",
"1.1.0+build",
]);
$sorted = Version::rsort($versions);
// The result:
// "1.1.0"
// "1.1.0+build"
// "1.0.1"
// "1.0.1-alpha.beta"
// "1.0.1-alpha.3"
// "1.0.1-alpha.2"
// "1.0.1-alpha"
use z4kn4fein\SemVer\Version;
$versions = array_map(function(string $version) {
return Version::parse($version);
}, [
"1.0.1",
"1.0.1-alpha",
"1.0.1-alpha.beta",
"1.0.1-alpha.3",
"1.0.1-alpha.2",
"1.1.0",
"1.1.0+build",
]);
usort($versions, ["z4kn4fein\SemVer\Version", "compare"]);
// The result:
// "1.0.1-alpha"
// "1.0.1-alpha.2"
// "1.0.1-alpha.3"
// "1.0.1-alpha.beta"
// "1.0.1"
// "1.1.0"
// "1.1.0+build"
use z4kn4fein\SemVer\Version;
use z4kn4fein\SemVer\Constraints\Constraint;
$constraint = Constraint::parse(">=1.2.0");
$version = Version::parse("1.2.1");
echo $version->isSatisfying($constraint); // true
echo $constraint->isSatisfiedBy($version); // true
// Or using the static satisfies() method with strings:
echo Version::satisfies("1.2.1", ">=1.2.0"); // true
use z4kn4fein\SemVer\Version;
use z4kn4fein\SemVer\Inc;
$stableVersion = Version::create(1, 0, 0);
echo $stableVersion->getNextMajorVersion(); // 2.0.0
echo $stableVersion->getNextMinorVersion(); // 1.1.0
echo $stableVersion->getNextPatchVersion(); // 1.0.1
echo $stableVersion->getNextPreReleaseVersion(); // 1.0.1-0
// or with the inc() method:
echo $stableVersion->inc(Inc::MAJOR); // 2.0.0
echo $stableVersion->inc(Inc::MINOR); // 1.1.0
echo $stableVersion->inc(Inc::PATCH); // 1.0.1
echo $stableVersion->inc(Inc::PRE_RELEASE); // 1.0.1-0
use z4kn4fein\SemVer\Version;
use z4kn4fein\SemVer\Inc;
$unstableVersion = Version::parce("1.0.0-alpha.2+build.1");
echo $unstableVersion->getNextMajorVersion(); // 2.0.0
echo $unstableVersion->getNextMinorVersion(); // 1.1.0
echo $unstableVersion->getNextPatchVersion(); // 1.0.0
echo $unstableVersion->getNextPreReleaseVersion(); // 1.0.0-alpha.3
// or with the inc() method:
echo $unstableVersion->inc(Inc::MAJOR); // 2.0.0
echo $unstableVersion->inc(Inc::MINOR); // 1.1.0
echo $unstableVersion->inc(Inc::PATCH); // 1.0.0
echo $unstableVersion->inc(Inc::PRE_RELEASE); // 1.0.0-alpha.3
use z4kn4fein\SemVer\Version;
use z4kn4fein\SemVer\Inc;
$version = Version::parce("1.0.0-alpha.1");
echo $version->getNextMajorVersion("beta"); // 2.0.0-beta
echo $version->getNextMinorVersion(""); // 1.1.0-0
echo $version->getNextPatchVersion("alpha"); // 1.0.1-alpha
echo $version->getNextPreReleaseVersion("alpha"); // 1.0.0-alpha.2
// or with the inc() method:
echo $version->inc(Inc::MAJOR, "beta"); // 2.0.0-beta
echo $version->inc(Inc::MINOR, ""); // 1.1.0-0
echo $version->inc(Inc::PATCH, "alpha"); // 1.0.1-alpha
echo $version->inc(Inc::PRE_RELEASE, "alpha"); // 1.0.0-alpha.2
$version = Version::parse("1.0.0-alpha.2+build.1");
echo $version->copy(); // 1.0.0-alpha.2+build.1
echo $version->copy(3); // 3.0.0-alpha.2+build.1
echo $version->copy(null, 4); // 1.4.0-alpha.2+build.1
echo $version->copy(null, null, 5); // 1.0.5-alpha.2+build.1
echo $version->copy(null, null, null, "alpha.4"); // 1.0.0-alpha.4+build.1
echo $version->copy(null, null, null, null, "build.3"); // 1.0.0-alpha.2+build.3
echo $version->copy(3, 4, 5); // 3.4.5-alpha.2+build.1
shell
composer