如何在Debian 9上安装和使用PHP Composer
Composer是PHP的依赖项管理器(类似于Node.js的npm或者Python的pip)。
Composer将提取我们项目所依赖的所有必需PHP软件包,并为我们管理它们。
本教程提供了在Debian 9系统上安装Composer所需的步骤。
我们还将介绍如何使用Composer创建和管理PHP项目。
准备工作
在继续本教程之前,请确保我们以具有sudo特权的用户身份登录,并且已在Debian 9系统上安装了PHP。
安装composer
请按照以下步骤在Debian系统上安装Composer:
- 首先更新软件包索引,并使用以下命令安装必要的软件包:
sudo apt updatesudo apt install php-cli php-zip wget unzip
- 安装依赖项后,使用php cli toll下载Composer安装脚本:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
上面的命令会将'composer-setup.php'文件下载到当前工作目录中。
- 我们将比较脚本'SHA-384'哈希值和Composer公钥/签名页面上的最新安装程序哈希值,以验证脚本数据的完整性。运行以下wget命令以从以下位置下载最新Composer安装程序的预期签名:composer的Github页面,并将其存储在名为“ HASH”的变量中:
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
要验证安装脚本是否未损坏,请将以下代码复制并粘贴到控制台中:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
如果哈希值匹配,我们将看到以下输出:
Installer verified
如果哈希值不匹配,我们会看到“安装程序已损坏”。在这种情况下,我们将需要重新下载Composer安装脚本,并使用'echo $HASH'再次检查'$HASH'变量的值。
验证安装程序后,我们可以继续下一步。
- 以下命令将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.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
至此,我们已经在Debian系统上安装了Composer。它作为系统级命令安装,将对所有用户可用。
- 要验证安装,只需键入:
composer
上面的命令将打印Composer的版本,命令和参数。
______ /____/___ ____ ___ ____ ____ ________ _____ ///__ \/__ `__ \/__ \/__ \/___/_ \/___/ //___//_////////_///_/(__ ) __// ____/____/_//_//_/.___/____/____/___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
如果要使用每个项目的Composer安装,请运行以下命令“ php composer-setup.php”,该命令将在当前工作目录中创建一个名为“ composer.phar”的文件。
我们可以通过运行'./composer.phar <command>'使用composer。
Composer入门
现在,我们已经在Debian系统上安装了Composer,我们将向我们展示如何使用Composer创建PHP项目。
首先创建一个目录,该目录将成为项目的根目录并保存“ composer.json”文件。
该文件描述了PHP项目,包括PHP依赖关系和其他元数据。
创建项目目录并使用以下命令切换到该目录:
mkdir ~/my-first-composer-projectcd ~/my-first-composer-project
接下来,我们将使用“ composer require <程序包名称>”命令初始化一个新的“ composer.json”文件,并指定我们要下载的程序包。
在此示例中,我们将创建一个示例应用程序,该应用程序将使用名为carbon的包来打印当前时间。
运行以下命令以初始化新的'composer.json'文件并安装carbon软件包:
composer require nesbot/carbon
Using version ^1.34 for nesbot/carbon ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) - Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%) - Installing symfony/translation (v3.4.17): Downloading (100%) - Installing nesbot/carbon (1.34.0): Downloading (100%) symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance) symfony/translation suggests installing symfony/config symfony/translation suggests installing symfony/yaml symfony/translation suggests installing psr/log-implementation (To use logging capability in translator) Writing lock file Generating autoload files
Composer将创建一个“ composer.json”文件,并下载并安装carbon及其所有依赖项。
如果使用“ ls”命令列出项目的目录,则会看到该目录包含两个文件“ composer.json”和“ composer.lock”以及一个“ vendor”目录。
ls -l
-rw-r--r-- 1 theitroad users 60 Oct 16 21:02 composer.json -rw-r--r-- 1 theitroad users 6851 Oct 16 21:02 composer.lock drwxr-xr-x 5 theitroad users 4096 Oct 16 21:02 vendor
- 'vendor'-项目依赖关系存储的目录。
- 'composer.lock'-包含所有已安装软件包(包括软件包版本)列表的文件。
- 'composer.json'-描述PHP项目和所有PHP依赖项的文件。
我们可以在Composer存储库Packagist中搜索PHP软件包。
Composer提供了自动加载功能,使我们可以使用PHP类,而无需“需要”或者“包含”文件。
创建一个名为“ testing.php”的文件,并粘贴以下代码:
<?php require __DIR__ . '/vendor/autoload.php'; use Carbon\Carbon; printf("Now: %s", Carbon::now());
让我们逐行分析代码。
在打开php标签后的第一行中,我们包含了由Composer自动生成的“ vendor/autoload.php”文件。
该文件将自动加载所有必需的库。
接下来,我们将'Carbon \ Carbon'别名为'Carbon',并在最后一行中使用Carbon'now'方法打印当前时间。
通过键入以下命令来运行脚本:
php testing.php
输出应如下所示:
Now: 2016-10-16 21:08:45
以后,如果我们需要更新项目包,请输入:
composer update
上面的命令将检查已安装软件包的较新版本,如果找到了较新版本,并且版本约束与'composer.json'中指定的版本匹配,则Composer将更新该软件包。