简介#

Composer 是 PHP 依赖管理工具。它允许您声明项目依赖的库,并负责管理(安装/更新)它们。

依赖管理#

Composer 不是像 Yum 或 Apt 那样传统的包管理器。它确实处理“包”或库,但它在每个项目的范围内管理它们,将它们安装在项目目录(例如 vendor)中。默认情况下,它不会全局安装任何东西。因此,它是一个依赖管理工具。但是,它通过 global 命令支持“全局”项目,以方便使用。

这个理念并不新鲜,Composer 受到 node 的 npm 和 ruby 的 bundler 的很大启发。

假设

  1. 您有一个项目依赖于多个库。
  2. 其中一些库又依赖于其他库。

Composer

  1. 允许您声明您依赖的库。
  2. 确定哪些版本的哪些包可以且需要安装,并安装它们(意味着将它们下载到您的项目中)。
  3. 您可以使用一个命令更新所有依赖项。

有关声明依赖项的更多详细信息,请参见 基本用法 章节。

系统要求#

Composer 的最新版本需要 PHP 7.2.5 才能运行。长期支持版本 (2.2.x) 仍然支持 PHP 5.3.2+,以防您使用旧版 PHP 版本。还需要一些敏感的 php 设置和编译标志,但在使用安装程序时,会提示您有关任何不兼容性的警告。

Composer 需要几个支持应用程序才能有效地工作,从而使处理包依赖项的过程更加高效。为了解压缩文件,Composer 依赖于 7z(或 7zz)、gziptarunrarunzipxz 等工具。对于版本控制系统,Composer 与 Fossil、Git、Mercurial、Perforce 和 Subversion 无缝集成,从而确保应用程序平稳运行并管理库存储库。在使用 Composer 之前,请确保这些依赖项已正确安装在您的系统上。

Composer 是跨平台的,我们努力使其在 Windows、Linux 和 macOS 上都能良好运行。

安装 - Linux / Unix / macOS#

下载 Composer 可执行文件#

Composer 提供了一个方便的安装程序,您可以直接从命令行执行。您可以 下载此文件,或者在 GitHub 上查看它,如果您想更多地了解安装程序的内部工作原理。源代码是纯 PHP。

简而言之,有两种方法可以安装 Composer。作为项目的一部分进行本地安装,或者作为系统范围内的可执行文件进行全局安装。

本地安装#

要本地安装 Composer,请在项目目录中运行安装程序。有关说明,请参见 下载页面

安装程序将检查一些 PHP 设置,然后将 composer.phar 下载到您的工作目录。此文件是 Composer 二进制文件。它是一个 PHAR(PHP 存档),这是一种 PHP 的存档格式,可以在命令行中运行,以及其他用途。

现在运行 php composer.phar 以运行 Composer。

您可以使用 --install-dir 选项将 Composer 安装到特定目录,并使用 --filename 选项对其进行重命名或重新命名。在按照 下载页面说明 运行安装程序时,请添加以下参数

php composer-setup.php --install-dir=bin --filename=composer

现在运行 php bin/composer 以运行 Composer。

全局安装#

您可以将 Composer PHAR 放在您喜欢的任何地方。如果您将其放在 PATH 中的目录中,则可以全局访问它。在 Unix 系统上,您甚至可以使其可执行并调用它,而无需直接使用 php 解释器。

在按照 下载页面说明 运行安装程序后,您可以运行以下命令将 composer.phar 移动到 PATH 中的目录

mv composer.phar /usr/local/bin/composer

如果您只想为您的用户安装它,并避免需要 root 权限,则可以使用 ~/.local/bin,默认情况下它在某些 Linux 发行版中可用。

注意:如果由于权限问题导致上述操作失败,您可能需要再次使用 sudo 运行它。

注意:在某些版本的 macOS 上,/usr 目录默认不存在。如果您收到错误“/usr/local/bin/composer: No such file or directory”,则必须在继续操作之前手动创建该目录:mkdir -p /usr/local/bin

注意:有关更改 PATH 的信息,请阅读 维基百科文章 和/或使用您选择的搜索引擎。

现在运行 composer 以运行 Composer,而不是 php composer.phar

安装 - Windows#

使用安装程序#

这是在您的机器上设置 Composer 的最简单方法。

下载并运行 Composer-Setup.exe。它将安装最新的 Composer 版本并设置您的 PATH,以便您可以在命令行中从任何目录调用 composer

注意:关闭当前终端。使用新终端测试使用情况:这一点很重要,因为 PATH 只有在终端启动时才会加载。

手动安装#

更改到 PATH 中的目录,并按照 下载页面说明 运行安装程序以下载 composer.phar

composer.phar 旁边创建一个新的 composer.bat 文件

使用 cmd.exe

C:\bin> echo @php "%~dp0composer.phar" %*>composer.bat

使用 PowerShell

PS C:\bin> Set-Content composer.bat '@php "%~dp0composer.phar" %*'

如果还没有,请将该目录添加到您的 PATH 环境变量中。有关更改 PATH 变量的信息,请参见 这篇文章 和/或使用您选择的搜索引擎。

关闭当前终端。使用新终端测试使用情况

C:\Users\username>composer -V
Composer version 2.4.0 2022-08-16 16:10:48

Docker 镜像#

Composer 在几个地方作为 Docker 容器发布,请参见 composer/docker 自述文件 中的列表。

示例用法

docker pull composer/composer
docker run --rm -it -v "$(pwd):/app" composer/composer install

要将 Composer 添加到现有的 Dockerfile 中,您可以简单地从预构建的、体积小的镜像中复制二进制文件

# Latest release
COPY --from=composer/composer:latest-bin /composer /usr/bin/composer

# Specific release
COPY --from=composer/composer:2-bin /composer /usr/bin/composer

阅读 镜像说明 以获取更多用法信息。

注意:Docker 特定问题应在 composer/docker 存储库 中提出。

注意:您也可以使用 composer 而不是 composer/composer 作为上面的镜像名称。它更短,是 Docker 官方镜像,但不是由我们直接发布的,因此通常会延迟几天才能收到新版本。重要提示:短别名镜像没有二进制专用等效镜像,因此对于 COPY --from 方法,最好使用 composer/composer 镜像。

使用 Composer#

现在您已经安装了 Composer,您已准备好使用它了!继续阅读下一章,了解简短演示。

基本用法

发现错别字了吗?文档中有什么问题吗?分叉并编辑 它!