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
All settings correct for using Composer
Downloading...

Composer (version 1.10.7) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/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

在此示例中,我们将使用一个名为 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.jsoncomposer.lock,以及一个vendor目录。

ls -l
-rw-rw-r--. 1 myfreax myfreax    60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 myfreax myfreax 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 myfreax myfreax    82 Mar 27 18:06 vendor
  • vendor是存储项目依赖项的目录。
  • composer.lock 是一个文件,其中包含有关所有已安装软件包及其版本的信息,将项目锁定为特定版本。
  • composer.json 是描述您的PHP项目的文件,包括PHP依赖关系和其他元数据。

可通过Composer安装的所有PHP软件包在 Packagist 中找到

Composer具有自动加载功能,使我们无需使用requireinclude文件即可使用PHP类。

创建一个名为testing.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

输出应如下所示:

Now: 2020-06-17 20:41:04

以后,如果您需要更新项目包,请输入:

composer update

上面的命令将检查安装的软件包的较新版本,如果找到了较新的版本,并且版本约束composer.json中指定的匹配,则Composer将更新该软件包。

结论

我们向您展示了如何在Ubuntu 20.04上安装Composer以及如何使用它来创建基本的PHP项目。

有关Composer的更多信息,请访问官方文档页面。

如有任何疑问,请在下面发表评论。