Linux 如何安装 Composer

1. 什么是 Composer

说到 Composer,不得不提它的前身 PEAR。PEAR 是 PHP Extension and Application Repository 的缩写,它是 PHP 开发中的一个东西库,封装了很多现成的类库和扩展。

随后,另一个类似的项目 Zend Framework(ZF)也应运而生,不过 ZF 相比 PEAR,更加侧重于 Web 应用框架。

在这样的大环境下,PHP 社区中的一个叫做 Nils Adermann 和 Jordi Boggiano 的组合,开始着手开发一个新的依赖管理器 。他们最终发布了 Composer,到目前已经成为 PHP 生态系统中,管理依赖的事实标准。

2. 安装 Composer

2.1 手工下载安装

我们可以通过在终端中执行以下命令来安装 Composer :

curl -sS https://getcomposer.org/installer | php

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

这两条命令的含义分别是:

通过 Curl 下载一个安装脚本,这个脚本会从 getcomposer.org 上面下载最新版本的 Composer ;

将安装脚本反馈给 PHP 运行,安装成功后会生成一个名为 composer.phar 的可执行文件;

通过使用系统命令 mv 将文件从当前目录移动到 /usr/local/bin/ 目录下,这样命令才可以全局访问。

2.2 使用 Homebrew 安装

Homebrew 是 macOS 上的包管理器,其中包含很多开发者常用的命令行工具。在已经安装好 Homebrew 的条件下,只需要在终端执行以下命令就可以安装 Composer :

brew install composer

这条命令的意思是通过 Homebrew 安装 Composer 。由于 Homebrew 会自动管理软件包和软件库的依赖关系,所以安装过程较为自动化。

3. 验证安装

在安装完 Composer 后,我们可以在终端中执行以下命令来验证是否已经正确安装:

composer -v

如果能够正常输出 Composer 的版本号,则说明安装过程已经顺利完成。

4. Composer 配置文件

若想更改 Composer 的默认行为,可以通过使用自己的配置文件来实现。Composer 支持以下几种不同的配置文件格式 :

JSON 文件

YAML 文件

INI 文件

对于大多数的项目来说,使用 composer.json 文件就可以满足需要。我们可以在项目的根目录下创建 composer.json 文件,并完成一些基本配置以满足自己的需要。

5. Composer 常用命令

5.1 require

通过 composer require 命令,我们可以将指定的依赖包添加到 composer.json 文件中,并通过执行 composer update 命令自动下载并更新。

例如,下面的命令将会添加最新版本的 SwiftMailer 到 composer.json

composer require swiftmailer/swiftmailer

5.2 update

通过 composer update 命令,我们可以更新 composer.json 中所有已经列出的依赖包。它会自动获取最新的稳定版本。

例如,下面的命令将会更新所有在 composer.json 文件中列出的依赖包:

composer update

5.3 install

通过 composer install 命令,我们可以“安装”项目所需的依赖包,即下载它们并将它们安装到 vendor/ 目录中。

例如,下面的命令将会下载项目中所需的所有依赖包,并将它们安装到 vendor/ 目录中:

composer install

5.4 show

通过 composer show 命令,我们可以查看当前项目所需的所有依赖包,以及它们的版本号和依赖关系。

例如,下面的命令将会列出当前项目所有依赖包的名称、版本和依赖关系:

composer show

6. 总结

Composer 是 PHP 社区中的一项非常重要而且基础的工具,在开发过程中,它可以为我们管理第三方扩展和库的依赖关系,从而让我们可以更加专注于业务代码的实现。

在本文中,我们介绍了 Composer 的安装、配置以及基本命令的使用方法。如果你是一位 PHP 开发者,并且尚未使用 Composer,那么你一定应该尝试一下它的魅力。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。