如何在Ubuntu 20.04上安装和使用PHP Composer
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 updatesudo 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”中的目录中即可。
运行以下命令以将Composer安装在“/usr/local/bin”目录中:
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。
- 要在本地安装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-projectcd ~/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'目录。
ls -l
-rw-rw-r--. 1 theitroad theitroad 60 Mar 27 18:05 composer.json -rw-rw-r--. 1 theitroad theitroad 11135 Mar 27 18:06 composer.lock drwxrwxr-x. 6 theitroad theitroad 82 Mar 27 18:06 vendor
- “ vendor”是存储项目依赖项的目录。
- “ composer.lock”是一个文件,其中包含有关所有已安装软件包及其版本的信息,从而将项目锁定为特定版本。
- “ composer.json”是描述PHP项目的文件,包括PHP依赖项和其他元数据。
Packagist列出了可通过Composer安装的所有PHP软件包。
Composer具有自动加载功能,该功能使我们可以使用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: 2017-06-17 20:41:04
以后,如果我们需要更新项目包,请输入:
composer update
上面的命令将检查已安装软件包的较新版本,如果找到了较新版本,并且版本约束与'composer.json'中指定的约束匹配,则Composer将更新该软件包。