Composer是PHP的依赖项管理器,类似于Node.js的npmPython的pip。使用Composer让您可以项目所依赖的PHP库。

它将为您安装和管理所有库和依赖。Composer适用于所有现代PHP框架和平台,例如Laravel,Symfony,Drupal和Magento。

本教程介绍如何在Ubuntu 20.04安装和使用Composer。在安装Composer之前,请确保您已在Ubuntu 20.04安装PHP或者在Ubuntu 20.04安装PHP 8.0

Composer提供了一个用PHP编写的安装程序,我们将使用它来安装Composer。

Composer是单个文件CLI应用程序,可以使用全局安装或者本地安装的方式进行配置。你需要以root或者具有sudo权限的用户才可以配置全局安装。

如果需要全局安装Composer,只需将Composer文件移动到PATH环境变量的目录中即可。 在本教程中,将使用自动的方式安装Composer。

现在我们已经将这些过程整合一个命令中,你可直接运行以下使用HereDoccat命令整合的脚本一键安装Composer。脚本将会安装最新的稳定版本的Composer。

cat <<"EOF" | bash                              
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"

if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]
then
    >&2 echo 'ERROR: Invalid installer checksum'
    rm composer-setup.php
    exit 1
fi

php composer-setup.php --quiet
RESULT=$?
rm composer-setup.php
sudo mv composer.phar /usr/bin/composer
composer -v
exit $RESULT
EOF

Composer入门

现在,您的Ubuntu 20.04已安装Composer,让我们看看如何使用Composer创建PHP项目。第一步是创建项目根目录,然后导航到项目目录中。

在此示例中,我们将使用一个名为 carbon 的PHP程序包来创建一个示例应用程序,以显示当前时间。

运行命令composer require nesbot/carbon来初始化新的Composer项目并安装carbon依赖。

Composer创建composer.json文件并下载并安装carbon及其所有依赖项。如果您运行ls命令列出目录

则会看到项目目录包含两个文件composer.jsoncomposer.lock,以及一个vendor目录。

mkdir ~/my-first-composer-project
cd  ~/my-first-composer-project
composer require nesbot/carbon
ls -l

vendor是存储项目依赖项的目录。composer.lock是一个文件,其中包含所有已安装的依赖及其版本的信息,将项目锁定为指定版本。

composer.json是描述您的PHP项目的文件,包括PHP依赖关系和其他元数据。可通过Composer安装的所有PHP依赖在Packagist中找到。

Composer具有自动加载功能,我们无需使用requireinclude文件即可调用PHP类。创建一个名为testing.php的文件,并添加php代码。

现在使用你的喜欢的文本编辑器创建文件~/my-first-composer-project/testing.php

在本教程中我们将使用vim编辑器打开文件~/my-first-composer-project/testing.php

vim ~/my-first-composer-project/testing.php
<?php

require __DIR__ . '/vendor/autoload.php';

use Carbon\Carbon;

printf("Now: %s", Carbon::now());
testing.php

这里解释一下testing.php的代码,vendor/autoload.php文件由Composer自动生成,并自动加载所有库。

下一行导入Carbon的命名空间,最后一行使用Carbon now方法打印当前时间。有关Composer的更多信息,请访问官方文档页面。

php testing.php
Now: 2020-06-17 20:41:04

结论

我们向您展示了如何在Ubuntu 20.04安装Composer以及如何使用它来创建基本的PHP项目。如有任何疑问,请在下面发表评论。