Composer 是 PHP 的依赖管理器(类似于 Node.js 的 npm 或 Python 的 pip)。使用 Composer,我们可以指定项目依赖的 PHP 库,它会为帮助我们快速拉取和管理所有库和依赖项。 Composer 用于所有现代 PHP 框架和平台,例如 Laravel、Symfony、Drupal 和 Magento。在这篇文章中的教程解释了如何在 Ubuntu 20.04 上安装和使用 Composer。

第一、在 Ubuntu 上安装 PHP Composer
在安装 Composer 之前,请确保我们的系统上安装了所有必要的要求:
sudo apt update
sudo apt install wget php-cli php-zip unzip
Composer 提供了一个用 PHP 编写的安装程序,我们将用它来安装 Composer。 使用 wget 下载安装程序:
wget -O composer-setup.php https://getcomposer.org/installer
我们执行命令后自动完成。上面的命令会将文件保存为当前工作目录中的 composer-setup.php 。
Composer 是一个单文件 CLI 应用程序,可以全局安装或作为项目的一部分安装。 全局安装需要 sudo 权限。要将 Composer 全局安装为可供所有用户使用的系统范围命令,只需将该文件放在系统 PATH 中的目录中。 运行以下命令在 /usr/local/bin 目录中安装 Composer:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
我们现在可以通过在终端中运行 composer 来使用 Composer。要在本地安装 Composer,请输入:
sudo php composer-setup.php --install-dir=/path/to/project
这将在的项目根目录中下载一个名为 composer.phar 的文件。 要使用 Composer 导航到项目目录并运行 php composer.phar
当新的 Composer 版本可用时,我们可以使用以下命令更新您的安装:
sudo composer self-update
第二、Composer 入门
现在我们的 Ubuntu 系统上已经安装了 Composer,让我们看看如何使用 Composer 创建一个 PHP 项目。
第一步是创建项目根目录并导航到它:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
在这个例子中,我们将使用一个名为 carbon 的 PHP 包来创建一个打印当前时间的示例应用程序。运行以下命令来初始化一个新的 Composer 项目并安装 carbon 包:
composer require nesbot/carbon
然后看看效果反馈。
Using version ^2.35 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.1.2): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.17.0): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.17.0): Downloading (100%)
- Installing symfony/translation (v5.1.2): Downloading (100%)
- Installing nesbot/carbon (2.35.0): Downloading (100%)
Writing lock file
Generating autoload files
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
如输出所示,Composer 创建 composer.json 文件并下载并安装 carbon 及其所有依赖项。如果你列出你的项目目录,你会看到它包含两个文件 composer.json 和 composer.lock,以及一个 vendor 目录。
Composer 具有自动加载功能,允许我们使用 PHP 类而无需要求或包含文件。
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
我们创建一个文件。
让我们一行一行地分析代码。vendor/autoload.php 文件由 Composer 自动生成并自动加载所有库。下一行创建别名 Carbon,最后一行使用 Carbon now 方法打印当前时间。
执行文件:
php testing.php
如果你需要升级包的话执行。
composer update
上面的命令将检查已安装包的更新版本,如果找到更新的版本并且版本约束与 composer.json 中指定的版本约束匹配,Composer 将更新包。