PHPackages                             nikolaposa/version - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nikolaposa/version

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nikolaposa/version
==================

Value Object that represents a SemVer-compliant version number.

4.2.1(1y ago)1406.4M—5%12[1 PRs](https://github.com/nikolaposa/version/pulls)13MITPHPPHP ^8.1CI failing

Since Sep 19Pushed 1y ago6 watchersCompare

[ Source](https://github.com/nikolaposa/version)[ Packagist](https://packagist.org/packages/nikolaposa/version)[ Docs](https://github.com/nikolaposa/version)[ RSS](/packages/nikolaposa-version/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (6)Versions (31)Used By (13)

Version
=======

[](#version)

[![Build](https://github.com/nikolaposa/version/workflows/Build/badge.svg?branch=master)](https://github.com/nikolaposa/version/actions)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/a7b345fdfdb2643e96d50807e0c8da21b8589daa54dd2bddeb221eedcf4db055/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6e696b6f6c61706f73612f76657273696f6e2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/nikolaposa/version/?branch=master)[![Code Coverage](https://camo.githubusercontent.com/bef0c0502461b52ffae394b8731bec757c8eeddfcfd7fa3f2bb1852e2f48ef2e/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6e696b6f6c61706f73612f76657273696f6e2f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/nikolaposa/version/?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/da364a7f0c1758816948c51b78b4996f7075cf2323d4142f134b021df6541373/68747470733a2f2f706f7365722e707567782e6f72672f6e696b6f6c61706f73612f76657273696f6e2f762f737461626c65)](https://packagist.org/packages/nikolaposa/version)[![PDS Skeleton](https://camo.githubusercontent.com/a8ce1f2a7b71f101b18fc0393ba5bf89b7a5b1f9d08a31b658ca0eab0064c0f6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7064732d736b656c65746f6e2d626c75652e737667)](https://github.com/php-pds/skeleton)

Value Object that represents a [SemVer](http://semver.org/)-compliant version number.

Installation
------------

[](#installation)

The preferred method of installation is via [Composer](http://getcomposer.org/). Run the following command to install the latest version of a package and add it to your project's `composer.json`:

```
composer require nikolaposa/version
```

Usage
-----

[](#usage)

### Creating a Version object via named constructor and accessing its values

[](#creating-a-version-object-via-named-constructor-and-accessing-its-values)

```
use Version\Extension\Build;
use Version\Extension\PreRelease;
use Version\Version;

$v = Version::from(2, 0, 0, PreRelease::from('alpha', '1'), Build::from('20191222232137'));

echo $v->getMajor(); //2
echo $v->getMinor(); //0
echo $v->getPatch(); //0
print_r($v->getPreRelease()->getIdentifiers()); //Array([0] => alpha [1] => 1)
echo $v->getPreRelease()->toString(); //alpha.1
print_r($v->getBuild()->getIdentifiers()); //Array([0] => 20191222232137)
echo $v->getBuild()->toString(); //20191222232137
```

### Creating a Version object from a string

[](#creating-a-version-object-from-a-string)

```
$v = Version::fromString('1.10.0');

echo $v->toString(); //1.10.0
```

### Comparing Version objects

[](#comparing-version-objects)

```
$v1 = Version::fromString('1.10.0');
$v2 = Version::fromString('2.3.3');

var_dump($v1->isLessThan($v2)); //bool(true)
var_dump($v1->isGreaterThan($v2)); //bool(false)
var_dump($v1->isEqualTo($v2)); //bool(false)

var_dump($v2->isLessThan($v1)); //bool(false)
var_dump($v2->isGreaterThan($v1)); //bool(true)
```

### Matching Version objects against constraints

[](#matching-version-objects-against-constraints)

```
$v = Version::fromString('2.2.0');

var_dump($v->matches(OperationConstraint::equalTo(Version::fromString('2.2.0')))); //bool(true)
var_dump($v->matches(OperationConstraint::notEqualTo(Version::fromString('2.2.0')))); //bool(true)
var_dump($v->matches(OperationConstraint::fromString('>=2.0.0 =2.0.0
