composer php:如何find一个包的确切版本?
假设我正在写一个图书馆A,这取决于另一个图书馆,monolog例如。
我想安装最新版本的monolog,所以我只是把它放在composer.json里面:
{ "require": { "monolog/monolog": "*.*.*" } }
然后我运行“$ php composer.phar install”。
我期待在composer.lock中find安装的版本,但它不在那里:
{ "hash": "d7bcc4fe544b4ef7561918a8fc6ce009", "packages": [ { "package": "monolog/monolog", "version": "dev-master", "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7" } ], "packages-dev": null, "aliases": [ ], "minimum-stability": "dev", "stability-flags": [ ] }
我需要的版本,因为我想我的图书馆绑定到一个特定的版本,例如:如果我发现版本是1.3.5,在我的composer.json我想这样的东西:
"require": { "monolog/monolog": "1.3.*" }
有任何想法吗?
我知道这是一个古老的问题,但…
composer.phar show
将显示所有当前安装的软件包及其版本信息。 (仅在使用现在不推荐使用的-i
选项时,才会在以前版本的Composer中显示。)
要查看更多详细信息,请指定包的名称:
composer.phar show monolog/monolog
这将显示很多东西,包括提交MD5散列,源URL,许可证types等。
从技术上讲,“dev-master”是你最终在那里使用的确切版本。 它是开发分支,因此是最新的版本。
查找Composer软件包的可用版本的最佳位置是Packagist,因为这是composer php在安装软件包时加载版本的地方。 monolog版本列在http://packagist.org/packages/monolog/monolog上; 。
你可以用这样的composer php演出:
composer show package/name