2017 © Pedro Peláez
 

library semver

The semver parser for PHP

image

semver/semver

The semver parser for PHP

  • Saturday, May 28, 2016
  • by JulienDufresne
  • Repository
  • 1 Watchers
  • 1 Stars
  • 575 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 7 Versions
  • 23 % Grown

The README.md

PHP7+ SemVer

PHP implementation of the Semantic Versioning 2.0 documented on semver.org, (*1)

Build Status ![Coverage Status][coveralls-master-img] ![Scrutinizer Code Quality][scrutinizer-master-img], (*2)

Installation

Install the latest version with, (*3)

$ composer require semver/semver

Requirements

This library is standalone so you don't have to worry about dependencies.
The only requirement is to use PHP 7, (*4)

Usage

Create a Version

from decomposed elements, (*5)

use SemVer\SemVer\Version;

$version = new Version(1, 2, 3);
$version = new Version(1, 2, 3, '', 'exp.sha.5114f85');
$version = new Version(1, 2, 3, 'rc.1', 'exp.sha.5114f85');

from a string, (*6)

use SemVer\SemVer\Version;

$version = Version::fromString('1.2.3');
$version = Version::fromString('1.2.3+exp.sha.5114f85');
$version = Version::fromString('1.2.3-rc.1+exp.sha.5114f85');

Update to next version

It will always create a new Version, leaving the current as it is., (*7)

update the major version, (*8)

use SemVer\SemVer\Version;

$version = Version::fromString('1.2.3');
$nextVersion = $version->major();

var_dump($nextVersion->isEquals(new Version('2.0.0')); // true

Special case: when there is a pre-release and both minor and patch version are equals to 0, the next major version is the actual version without the pre-release, (*9)

use SemVer\SemVer\Version;

$version = Version::fromString('1.0.0-rc.1');
$nextVersion = $version->major();

var_dump($nextVersion->isEquals(new Version('1.0.0')); // true

update the minor version, (*10)

use SemVer\SemVer\Version;

$version = Version::fromString('1.2.3');
$nextVersion = $version->minor();

var_dump($nextVersion->isEquals(new Version('1.3.0')); // true

Special case: when there is a pre-release and the patch version is equal to 0, the next minor version is the actual version without the pre-release, (*11)

use SemVer\SemVer\Version;

$version = Version::fromString('1.1.0-rc.1');
$nextVersion = $version->minor();

var_dump($nextVersion->isEquals(new Version('1.1.0')); // true

update the patch version, (*12)

use SemVer\SemVer\Version;

$version = Version::fromString('1.2.3-rc.1');
$nextVersion = $version->patch();

var_dump($nextVersion->isEquals(new Version('1.2.3')); // true

Special case: when there is a pre-release, the next major version is the actual version without the pre-release, (*13)

use SemVer\SemVer\Version;

$version = Version::fromString('1.0.0-rc.1');
$nextVersion = $version->patch();

var_dump($nextVersion->isEquals(new Version('1.0.0')); // true

Compare two versions

use SemVer\SemVer\Version;
use SemVer\SemVer\VersionComparator;

$version1 = Version::fromString('1.2.3');
$version2 = Version::fromString('1.2.3-rc.1+exp.sha.5114f85');
var_dump(VersionComparator::compare($version1, $version2)); // 1
var_dump($version1->equals($version2)); // false
var_dump($version1->greaterThan($version2)); // true
var_dump($version1->greaterThanOrEqual($version2)); // true
var_dump($version1->lessThan($version2)); // false
var_dump($version1->lessThanOrEqual($version2)); // false

Sort an array of Versions

use SemVer\SemVer\Version;

$versions = [
    Version::fromString('2.0.0'),
    Version::fromString('1.2.3'),
    Version::fromString('1.3.3'),
    Version::fromString('1.3.3-alpha.10'),
    Version::fromString('1.3.3-alpha.2'),
    Version::fromString('1.2.3-rc.1+exp.sha.5114f85'),
];
var_dump(VersionSorter::sort($versions));
// Result:
// [
//    Version::fromString('1.2.3-rc.1+exp.sha.5114f85'),
//    Version::fromString('1.2.3'),
//    Version::fromString('1.3.3-alpha.2'),
//    Version::fromString('1.3.3-alpha.10'),
//    Version::fromString('1.3.3'),
//    Version::fromString('2.0.0'),
// ];

The Versions

28/05 2016

dev-master

9999999-dev http://semver.org

The semver parser for PHP

  Sources   Download

MIT

The Requires

  • php >=7.0.0

 

The Development Requires

by Julien Dufresne

28/05 2016

1.1.0

1.1.0.0 http://semver.org

The semver parser for PHP

  Sources   Download

MIT

The Requires

  • php >=7.0.0

 

The Development Requires

by Julien Dufresne

27/05 2016

0.3.1

0.3.1.0 http://semver.org

The semver parser for PHP

  Sources   Download

MIT

The Requires

  • php >=7.0.0

 

The Development Requires

by Julien Dufresne

27/05 2016

1.0.0

1.0.0.0 http://semver.org

The semver parser for PHP

  Sources   Download

MIT

The Requires

  • php >=7.0.0

 

The Development Requires

by Julien Dufresne

27/05 2016

0.3.0

0.3.0.0 http://semver.org

The semver parser for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

by Julien Dufresne

26/05 2016

0.2.0

0.2.0.0 http://semver.org

The semver parser for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

by Julien Dufresne

26/05 2016

0.1.0

0.1.0.0 http://semver.org

The semver parser for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

by Julien Dufresne