phar-io/version

处理版本信息和约束的库

资助包维护!
theseer

安装: 520,739,100

依赖者: 37

建议者: 0

安全: 0

星标: 7,358

关注者: 5

分支: 18

开放问题: 2

3.2.1 2022-02-21 01:04 UTC

This package is auto-updated.

Last update: 2024-08-30 01:17:35 UTC


README

处理版本信息和约束的库

CI

安装

您可以使用 Composer 将此库添加为项目的本地依赖项

composer require phar-io/version

如果您只需要在开发期间使用此库,例如运行项目的测试套件,那么您应该将其添加为开发时依赖项

composer require --dev phar-io/version

版本约束

版本约束描述了一组版本或一个离散的版本号。版本号的格式遵循 语义版本控制 的模式:<major>.<minor>.<patch>。约束可能包含一个运算符来描述范围。

除了常见的数学运算符如 <=>= 之外,还有两个特殊运算符

菱形运算符^1.0 可以写成 >=1.0.0 <2.0.0 并读作“主版本为 1 的所有版本”。

波浪形运算符~1.0.0 可以写成 >=1.0.0 <1.1.0 并读作“副版本为 1.1 的所有版本”。波浪形运算符的行为取决于是否提供了补丁级别版本。如果没有提供补丁级别,波浪形运算符的行为类似于菱形运算符:~1.0 等同于 ^1.0

使用示例

解析版本约束并检查离散版本是否符合

use PharIo\Version\Version;
use PharIo\Version\VersionConstraintParser;

$parser = new VersionConstraintParser();
$caret_constraint = $parser->parse( '^7.0' );

$caret_constraint->complies( new Version( '7.0.17' ) ); // true
$caret_constraint->complies( new Version( '7.1.0' ) ); // true
$caret_constraint->complies( new Version( '6.4.34' ) ); // false

$tilde_constraint = $parser->parse( '~1.1.0' );

$tilde_constraint->complies( new Version( '1.1.4' ) ); // true
$tilde_constraint->complies( new Version( '1.2.0' ) ); // false

从版本 2.0.0 开始,支持预发布标签,并在比较版本时考虑它们

$leftVersion = new PharIo\Version\Version('3.0.0-alpha.1');
$rightVersion = new PharIo\Version\Version('3.0.0-alpha.2');

$leftVersion->isGreaterThan($rightVersion); // false
$rightVersion->isGreaterThan($leftVersion); // true