140

假设我正在编写一个库 A,它依赖于另一个库,例如 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.*"
    }

有任何想法吗?

4

7 回答 7

209

我知道这是一个老问题,但是...

composer.phar show

将显示所有当前安装的软件包及其版本信息。-i(这仅在使用现已弃用的选项时才在 Composer 的早期版本中显示。)

要查看更多详细信息,请同时指定包的名称:

composer.phar show monolog/monolog

这将显示很多东西,包括提交 MD5 哈希、源 URL、许可证类型等。

于 2014-01-15T14:00:03.693 回答
63

您可以像这样使用作曲家表演:

composer show package/name
于 2017-10-18T11:27:10.230 回答
20

如果您只想将输出作为包版本号获取,例如:1.7.51.x-devdev-master

Linux 控制台片段(composer & sed):

composer show 'monolog/monolog' | sed -n '/versions/s/^[^0-9]\+\([^,]\+\).*$/\1/p'

或(作曲家,grep & cut):

composer show 'monolog/monolog' | grep 'versions' | grep -o -E '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1;
于 2018-09-30T02:48:00.693 回答
7

您可以使用 show all,特别是当没有 package.json 文件时,从 packagist.org 获取可用的包:

composer show "monolog/monolog" --all

您也可以指定版本

composer show "monolog/monolog" 1.* --all
于 2020-03-06T15:03:44.440 回答
6

从技术上讲,“dev-master”是您最终在那里使用的确切版本。它是开发分支,因此是最新版本。

为作曲家包寻找可用版本的最佳位置是Packagist,因为这是作曲家在安装包时加载版本的地方。独白版本列在http://packagist.org/packages/monolog/monolog上。

于 2012-05-21T17:07:49.490 回答
4

如果您使用git 版本控制系统。您将轻松搜索任何包

composer show |grep packagename

例如

composer show |grep monolog

如果你没有安装 git。您可以从此链接安装 grep 程序。并将其与环境变量链接,如果您在链接程序后不知道如何将程序与环境变量链接,则可以查看此链接 在上面编写相同的命令

于 2021-05-31T15:24:09.967 回答
0

如果要检查 PHP 本身的版本,可以使用 composer Runtime Utilities:

\Composer\InstalledVersions::getVersion('my/package')

有关更多信息,请参阅https://getcomposer.org/doc/07-runtime.md

于 2021-08-10T09:33:55.843 回答