假设我正在写一个库A,它依赖于另一个库,例如monolog。
我想安装最新版本的monolog,所以我把它放在composer.json里面:
{
"require": {
"monolog/monolog": "*.*.*"
}
}
然后运行$ php composer.phar install
。
我希望在composer.lock中找到安装的版本,但它不在那里:
{
"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.*"
}
有什么想法吗
8条答案
按热度按时间ha5z0ras1#
我知道这是个老问题,但是...
将显示当前安装的所有软件包及其版本信息。(这在以前版本的Composer中仅在使用现已弃用的
-i
选项时显示。要查看更多详细信息,请同时指定包的名称:
这将显示许多内容,包括提交MD5哈希、源URL、许可证类型等。
relj7zay2#
你可以这样使用composer show:
kmbjn2e33#
如果你只是想得到输出作为软件包版本号,像这样:1.7.5或1.x-dev或dev-master。
Linux控制台代码段(composer & sed):
or(composer,grep & cut):
a7qyws3x4#
您可以使用show all,特别是当没有package.json文件时,可以从www.example.com获取可用的软件包packagist.org:
您还可以指定版本
2ic8powd5#
如果您使用的是git version control system,则可以轻松搜索任何软件包
例如
如果你没有安装git,你可以从this link安装grep程序,将它与环境变量链接,然后在**
Cmd
**中编写与之前相同的命令如果你不知道如何将程序与环境变量链接,view this link链接后,在上面写同样的命令
pbossiut6#
从技术上讲,“dev-master”是您最终使用的确切版本。它是开发分支,因此是最新版本。
查找composer软件包可用版本的最佳位置是Packagist,因为当您安装软件包时,composer就是从那里加载版本的。monolog版本在http://packagist.org/packages/monolog/monolog上列出。
7d7tgy0s7#
如果你想在PHP内部检查版本,你可以使用composer Runtime Utilities:
有关详细信息,请参阅https://getcomposer.org/doc/07-runtime.md。
ewm0tg9j8#
要按名称查找软件包,运行以下命令(laravel就是一个例子)
要查找有关软件包的信息,请运行以下命令(laravel/laravel就是一个例子)