jean85 / pretty-package-versions
一个用于获取已安装依赖项的漂亮版本字符串的库
Requires
- php: ^7.1|^8.0
- composer-runtime-api: ^2.0.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- jean85/composer-provided-replaced-stub-package: ^1.0
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^7.5|^8.5|^9.4
- vimeo/psalm: ^4.3
README
jean85/pretty-package-versions
一个小的、独立的包装器,用于获取依赖项的漂亮版本字符串。
安装
- 如果您在库中使用此包,建议您使用约束
^1.5 || ^2.0
请求它,以获得所有功能,而无需将您的最终用户限制在必须立即升级到 Composer 2。
使用 Composer 安装
- 从 CLI:
composer require 'jean85/pretty-package-versions:^1.5 || ^2.0'
- 或者,直接在您的
composer.json
中
{ "require": { "jean85/pretty-package-versions": "^1.5 || ^2.0" } }
兼容性
该包最初是为了 ocramius/package-versions 而创建的一个薄包装器;随着 Composer 2 的推出,这不再需要,因为我们可以直接使用 Composer\InstalledVersions
。这导致了这个版本兼容性图表
这意味着,使用此包,您可以在不将您的用户绑定到任何特定 Composer 版本的情况下获取漂亮版本,并提供平滑的升级路径。由于在 #21 和相关问题中的一些讨论,1.4 版本的发布已被撤销。
用法
应使用单个类 Jean85\PrettyVersions
使用此包:它提供了一个返回请求包的 Jean85\Version
对象的方法,如下例所示
use Jean85\PrettyVersions; $version = PrettyVersions::getVersion('phpunit/phpunit'); $version->getPrettyVersion(); // '6.0.0' $version->getShortVersion(); // '6.0.0' $version->getVersionWithShortReference(); // '6.0.0@fa5711' $version = PrettyVersions::getVersion('roave/security-advisories'); $version->getPrettyVersion(); // 'dev-master@7cd88c8' $version->getShortVersion(); // 'dev-master' $version->getVersionWithShortReference(); // 'dev-master@7cd88c8'
Version
类还实现了 __toString()
方法,因此它可以很容易地转换为字符串;结果将与调用 getPrettyVersion()
方法相同。
可用方法
Jean85\Version
类有这些公开方法可用
-
getPrettyVersion(): string
:如果请求的包是标记版本,则仅返回短版本;如果不是,则输出与getVersionWithShortCommit()
相同的结果 -
getShortVersion(): string
:它将返回包的版本(即6.0.0
,v.1.7.0
,99999-dev
等...) -
getReference(): string
将返回已安装包的引用,通常是完整的 Git 提交哈希 -
getShortReference(): string
将返回引用的简短版本(即fa5711
) -
getVersionWithShortReference(): string
:它将返回包的版本,后跟引用的简短版本(即6.0.0@fa5711
) -
getPackageName(): string
将返回原始包名 -
getFullVersion(): string
将返回与PackageVersions\Versions::getVersion()
相同的值 -
__toString(): string
将返回与getPrettyVersion()
相同的值
自 1.5 以来
自 1.5 版本以来,还有两个额外的可用方法
PrettyVersions::getRootPackageName
返回当前(根)项目的包名,基本上是您的composer.json
中的name
属性值;它是一个兼容层,用于替代PackageVersions\Versions::ROOT_PACKAGE_NAME
,后者将是一个暂时的依赖项,且不能保证存在PrettyVersions::getRootPackageVersion
,它是PrettyVersions::getVersion(PrettyVersions::getRootPackageName())
的快捷方式
在 2.0 之前
在 2.0 版本中引入了具有 reference
名称的方法,以更好地反映从 Composer 2 API 获取的数据的含义。行为与旧方法相同,这些旧方法仍然存在,但已弃用