nanneau / semver
一个合格、符合标准、语义版本控制(SemVer)解析器和库
0.0.7
2013-01-04 00:00 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ~4.0.0
This package is not auto-updated.
Last update: 2024-09-14 14:34:45 UTC
README
这个库是一个用PHP编写的SemVer解析器。它拥有一个稳固的、完全测试过的面向对象API,这使得与SemVer版本一起工作变得容易。
这个库是在缺少用于在PHP中读取和操作SemVer版本的优秀工具的情况下诞生的。目前市面上现有的库要么不完全符合标准,要么缺乏一个合格的API。
用法(PHP)
解析和属性
将字符串解析为SemVer版本很简单
<?php use Naneau\SemVer\Parser; // Parse a SemVer string $version = Parser::parse('1.2.3-alpha.1+build.12345.ea4f51'); // Root parts echo $version->getMajor(); // => 1 echo $version->getMinor(); // => 2 echo $version->getPatch(); // => 3 // Pre-release part ('-alpha.1') if ($version->hasPreRelease()) { echo $version->getPreRelease()->getGreek(); // => alpha echo $version->getPreRelease()->getReleaseNumber(); // => 1 echo $version->getPreRelease() // => alpha.1 } // Build part ('+build.12345') if ($version->hasBuild()) { echo $version->getBuild()->getNumber(); // => 12345 var_dump($version->getBuild()->getParts()); // => array(0 => 'ea4f51'); } // Full version echo echo $version; // => 1.2.3-alpha.1+build.12345.ea4f51
比较
比较两个版本很简单
<?php use Naneau\SemVer\Parser; use Naneau\SemVer\Compare; Compare::greaterThan( Parser::parse('1.2.1-beta'), Parser::parse('1.2.1-alpha.1') ); // ==> true Compare::equals( Parser::parse('1.2.1-beta'), Parser::parse('1.2.1-alpha.1') ); // ==> false Compare::smallerThan( Parser::parse('1.2.0'), Parser::parse('1.2.1') ); // ==> true
排序
有一个内置的排序方法,它接受任意数量的参数(可以是字符串或Version实例),并返回一个数组,按SemVer降序排列
<?php use Naneau\SemVer\Sort; $sorted = Sort::sort('1.2.1-beta', '1.2.0+build.10', '0.9.29'); echo $sorted[0]; // => 0.9.29 echo $sorted[1]; // => 1.2.0+build.10 echo $sorted[2]; // => 1.2.1-beta