[扩展推荐] PHP 语义化版本(SemVer)辅助库
9

file

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 库,它有一个 comparatorsemver 类,然而,我并没有发现在 PHLAK/SemVer 中有的 increment 系列方法。

PHLAK/SemVer  获取安装指南吧!


Practice makes perfect.

原文地址:https://laravel-news.com/php-semantic-ve...

译文地址:https://learnku.com/laravel/t/20595

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4

可以直接比较的

>>> 'v1.2.3'>'v3.2.1'
=> false
2个月前

@lovecn 这种方式并不完善。例如:v1.2.3 > v1.11.3 ?

2个月前
Destiny

nice

2个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!