返回

如何轻松找到已安装 PHP 软件包的精确版本?

php

查找软件包的精确版本

问题

在 PHP 项目中,使用 Composer 管理依赖项时,你可能希望查找已安装软件包的精确版本。例如,如果你想要固定一个依赖项到特定版本,你需要知道它的精确版本。然而,在 composer.lock 文件中找不到这个信息,这可能令人沮丧。

解决方案

要查找软件包的精确版本,请使用以下步骤:

  1. 运行 composer show 命令,后面跟软件包名称:
composer show monolog/monolog
  1. 查看命令的输出:

该命令将显示软件包的详细信息,包括其版本。例如:

Name: monolog/monolog
Description: Sends your logs to files, sockets, inboxes, databases and various web services
Version: 2.8.0
Homepage: https://github.com/Seldaek/monolog

高级提示

其他方法:

除了使用 composer show 命令,你还可以使用以下方法查找软件包的精确版本:

  • 查看 vendor 文件夹: 转到你的项目 vendor 文件夹,找到软件包的文件夹。文件夹的名称将包含软件包的版本。
  • 检查代码: 在你的代码中,寻找软件包的命名空间。命名空间通常会包含软件包的版本信息。

固定版本:

一旦你找到了软件包的精确版本,你可以使用它来固定你的库到特定版本的软件包。例如,要在 composer.json 中将你的库绑定到 Monolog 版本 2.8.0,请使用以下内容:

"require": {
    "monolog/monolog": "2.8.0"
}

常见问题解答

1. 为什么我在 composer.lock 中看不到软件包的版本?

composer.lock 文件仅存储对软件包的引用,而不是其精确版本。这是因为软件包的版本可能会随着依赖项的变化而改变。

2. 我可以在哪里找到 composer.lock 文件?

composer.lock 文件通常位于项目根目录中。

3. 我可以固定多个版本的软件包吗?

是的,你可以使用 caret(^)符号指定版本范围。例如,以下内容将固定你的库到 Monolog 版本 2.8.x:

"require": {
    "monolog/monolog": "^2.8"
}

4. 我如何更新软件包到最新版本?

要更新软件包到最新版本,请运行以下命令:

composer update

5. 我如何删除软件包?

要删除软件包,请在 composer.json 中删除其引用,然后运行以下命令:

composer remove