https://github.com/questocat/version-comparator
Compares two version number strings based on Semantic Versioning 2.0.0
https://github.com/questocat/version-comparator
compare version version-compare
Last synced: about 2 months ago
JSON representation
Compares two version number strings based on Semantic Versioning 2.0.0
- Host: GitHub
- URL: https://github.com/questocat/version-comparator
- Owner: questocat
- License: mit
- Created: 2017-08-17T15:35:19.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-05-28T00:47:20.000Z (about 7 years ago)
- Last Synced: 2025-02-09T22:15:04.739Z (4 months ago)
- Topics: compare, version, version-compare
- Language: PHP
- Homepage:
- Size: 31.3 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## version-comparator
Compares two version number strings based on [Semantic Versioning 2.0.0](http://semver.org)
[](https://styleci.io/repos/100619169)
[](https://scrutinizer-ci.com/g/questocat/version-comparator/build-status/master)
[](https://scrutinizer-ci.com/g/questocat/version-comparator/?branch=master)
[](https://scrutinizer-ci.com/g/questocat/version-comparator/?branch=master)
[](https://packagist.org/packages/questocat/version-comparator)## Installation
Using [Composer](https://getcomposer.org) to add the package to your project's dependencies:
```bash
$ composer require questocat/version-comparator
```## Usage
#### Using compare method
```php
$semVerManager = new SemVerManager();
$semVerManager->compare('2.9.0', '2.9.6', '<'); // true
$semVerManager->compare('5.1.0', '5.1.0-alpha', '>'); // true
$semVerManager->compare('2.0.1-alpha.2', '2.0.1-alpha.1', '<'); // false
$semVerManager->compare('2.0.1-alpha.2', '2.0.1-alpha.1', '>'); // true
$semVerManager->compare('2.0.1-alpha.2', '2.0.1-alpha.1', '!='); // true
$semVerManager->compare('1.0.0-alpha.1', '1.0.0-alpha.beta', '<'); // true
$semVerManager->compare('2.0.1-alpha-abc.2', '2.0.1-alpha-abc.1', '>'); // true
$semVerManager->compare('1.0.0-alpha', '1.0.0-beta', '<'); // true
$semVerManager->compare('0.0.0+0', '0.0.0+1', '='); // true
$semVerManager->compare('1.0.0-alpha+001', '1.0.0+20130313144700', '<'); // true
$semVerManager->compare('1.0.0-rc.1+build.1', '1.0.0-rc.1', '<'); // false
$semVerManager->compare('1.0.0-rc.1+build.1', '1.0.0-rc.1', '='); // true
$semVerManager->compare('1.0.0-rc.2+build.1', '1.0.0-rc.1', '<'); // fasle
$semVerManager->compare('1.0.0-rc.2+build.1', '1.0.0-rc.1', '>='); // true
```#### Other examples
```php
$semVerManager->compare('1.0.0-alpha', '1.0.0-alpha.1', '<');
$semVerManager->compare('1.0.0-alpha.1', '1.0.0-alpha.beta', '<');
$semVerManager->compare('1.0.0-alpha.beta', '1.0.0-beta', '<');
$semVerManager->compare('1.0.0-beta', '1.0.0-beta.2', '<');
$semVerManager->compare('1.0.0-beta.2', '1.0.0-beta.11', '<');
$semVerManager->compare('1.0.0-beta.11', '1.0.0-rc.1', '<');
$semVerManager->compare('1.0.0-rc.1', '1.0.0', '<');
```#### Conclusion
1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0- rc.1 < 1.0.0#### Using compareTo method
```php
$semVerManager = new SemVerManager('2.9.0');
$semVerManager->compareTo('2.9.6', '<'); // true
$semVerManager->compareTo('2.8.9', '>'); // true
$semVerManager->compareTo('2.8.9-alpha', '>'); // true
```## Reference
* [semver](http://semver.org)
* [version_compare](http://php.net/manual/en/function.version-compare.php)
* [php-src](https://github.com/php/php-src)## License
Licensed under the [MIT license](https://github.com/questocat/version-comparator/blob/master/LICENSE).