phar-io / version
处理版本信息和约束的库
3.2.1
2022-02-21 01:04 UTC
Requires
- php: ^7.2 || ^8.0
README
处理版本信息和约束的库
安装
您可以使用 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