vdechenaux / package-versions
Composer 插件,提供对已安装包版本的快速高效查询(无运行时 IO)
1.3.0
2018-02-05 13:05 UTC
Requires
- php: ^7.1.0
- composer-plugin-api: ^1.0.0
Requires (Dev)
- ext-zip: *
- composer/composer: ^1.6.3
- infection/infection: ^0.7.1
- phpunit/phpunit: ^7.0.0
README
此实用工具提供对 composer 依赖项版本信息的快速便捷访问。
这些信息来源于 composer.lock
文件,该文件在执行 composer install
或 composer update
时(重新)生成。
$version = \PackageVersions\Versions::getVersion('ocramius/package-versions'); var_dump($version); // 1.0.0@0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33
安装
composer require ocramius/package-versions
建议您使用优化的 composer 自动加载器,以防止在访问 PackageVersions\Versions
API 时出现自动加载 I/O。
因此您应在 composer.json 中使用 optimize-autoloader: true
。
...
"config": {
"optimize-autoloader": true
},
...
查看 https://getcomposer.org.cn/doc/06-config.md#optimize-autoloader
如果您手动通过 CLI 生成自动加载器,请使用 --optimize
标志。
composer dump-autoload --optimize
使用场景
此存储库实现 PackageVersions\Versions::getVersion()
的方式,在调用它时不会发生 IO,因为包版本列表是在 composer 安装期间编译的。
这在您想要生成从当前依赖项版本计算出的资产/代码/工件时特别有用。这样做在运行时检查包的已安装版本会非常昂贵,而此包可以减轻这一点。