doesntmattr / semver
此包尚未发布任何版本,可用的信息很少。
README
这个库是一个用PHP编写的SemVer解析器。它具有稳固、完全测试过的OO 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
排序
有一个内置的排序方法,它接受任意数量的参数(字符串或版本实例),并返回一个数组,按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