composer / semver
提供实用工具、版本约束解析和验证的 Semver 库。
3.4.3
2024-09-19 14:15 UTC
Requires
- php: ^5.3.2 || ^7.0 || ^8.0
Requires (Dev)
- phpstan/phpstan: ^1.11
- symfony/phpunit-bridge: ^3 || ^7
This package is auto-updated.
Last update: 2024-09-19 14:16:14 UTC
README
Semver (语义版本) 库,提供实用工具、版本约束解析和验证。
最初作为 composer/composer 的一部分编写,现在已提取出来作为一个独立的库提供。
安装
使用以下命令安装最新版本
composer require composer/semver
需求
- 需要 PHP 5.3.2,但强烈推荐使用 PHP 的最新版本。
版本比较
有关版本比较的详细信息,请参阅 版本 文章,位于 getcomposer.org 网站的文档部分。
基本用法
比较器
Composer\Semver\Comparator
类提供以下方法来比较版本
- greaterThan($v1, $v2)
- greaterThanOrEqualTo($v1, $v2)
- lessThan($v1, $v2)
- lessThanOrEqualTo($v1, $v2)
- equalTo($v1, $v2)
- notEqualTo($v1, $v2)
每个函数都接受两个版本字符串作为参数,并返回一个布尔值。例如
use Composer\Semver\Comparator; Comparator::greaterThan('1.25.0', '1.24.0'); // 1.25.0 > 1.24.0
Semver
Composer\Semver\Semver
类提供以下方法
- satisfies($version, $constraints)
- satisfiedBy(array $versions, $constraint)
- sort($versions)
- rsort($versions)
区间
Composer\Semver\Intervals
静态类提供了一些用于处理复杂约束或从约束中读取版本区间的实用工具
use Composer\Semver\Intervals; // Checks whether $candidate is a subset of $constraint Intervals::isSubsetOf(ConstraintInterface $candidate, ConstraintInterface $constraint); // Checks whether $a and $b have any intersection, equivalent to $a->matches($b) Intervals::haveIntersections(ConstraintInterface $a, ConstraintInterface $b); // Optimizes a complex multi constraint by merging all intervals down to the smallest // possible multi constraint. The drawbacks are this is not very fast, and the resulting // multi constraint will have no human readable prettyConstraint configured on it Intervals::compactConstraint(ConstraintInterface $constraint); // Creates an array of numeric intervals and branch constraints representing a given constraint Intervals::get(ConstraintInterface $constraint); // Clears the memoization cache when you are done processing constraints Intervals::clear()
请参阅类的文档块以获取更多详细信息。
许可证
composer/semver 在 MIT 许可证下授权,有关详细信息请参阅 LICENSE 文件。