[扩展推荐] PHP 语义化版本(SemVer)辅助库
SemVer 是由 Chris Kankiewicz 开发的一个语义化的提取版本号中各种信息的 PHP 辅助库。支持解析、递增和比较等特性。
下面是初始化 SemVer\Version
对象的基本用法:
use PHLAK\SemVer;
$version = new SemVer\Version(); // 初始化为'0.1.0'
利用 SemVer\Version
实例,可以获取版本号中的各种值:
$version = new SemVer\Version('v1.2.3-beta.4+007');
echo $version; // 版本号全称为'1.2.3-beta.4+007'
echo $version->major; // 主版本号为1
echo $version->minor; // 次版本号为2
echo $version->patch; // 修正版本号为3
echo $version->preRelease; // 预览版本号为'beta.4'
echo $version->build; // 构建版本次数号为'007'
如果你要增加自己软件包的版本号,可以利用此包中的 increment
方法:
$version = new SemVer\Version('v1.2.3');
$version->incrementMajor(); // v1.2.3 -> v2.0.0
$version->incrementMinor(); // v1.2.3 -> v1.3.0
$version->incrementPatch(); // v1.2.3 -> v1.2.4
版本之间的比较非常方便:
$version1 = new SemVer('v1.2.3');
$version2 = new SemVer('v3.2.1');
$version1->gt($version2); // false
$version1->lt($version2); // true
$version1->eq($version2); // false
$version1->neq($version2); // true
$version1->gte($version2); // false
$version1->lte($version2); // true
在了解 PHLAK/SemVer
之前,我没有意识到 composer
也有一个 composer/semver 库,它有一个 comparator
和 semver
类,然而,我并没有发现在 PHLAK/SemVer
中有的 increment 系列方法。
去 PHLAK/SemVer 获取安装指南吧!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
可以直接比较的
@lovecn 这种方式并不完善。例如:
v1.2.3
>v1.11.3
?nice
version_compare
http://php.net/manual/zh/function.version-...