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之前
名称中包含 reference
的方法是在2.0版本中引入的,以便更好地反映从Composer 2 API检索到的数据的含义。其行为与旧方法相同,这些旧方法仍然存在,但已被弃用