让 Composer 管理所有依赖项,轻松编写 PHP 项目
Composer 是 PHP 的依赖管理工具。它不同于传统的包管理器,例如 易于
和 天狼星
,以一种方式,它不会在系统范围内全局安装包和库,而是分别为每个项目处理它们。因此它是一个依赖管理器而不是一个包管理器。
就像音乐作曲家如何使用一堆乐器并将它们安排在音乐会上完美地工作一样,PHP Composer 使用一堆库和框架,将它们打包在一起工作,并为 PHP 项目创建一个坚实的基础组成。
先决条件
您需要使用非 root 用户访问 Ubuntu 20.04 系统 须藤
用户帐号。此外,您需要为 Composer 安装一些依赖项,其中包括 php-cli
在终端中运行 PHP 脚本, 解压
帮助 Composer 解压缩下载的软件包和 卷曲
下载composer安装脚本
要安装所有必需的软件包,请通过运行 update 命令更新 Ubuntu 软件包列表:
sudo apt 更新
然后安装 php-cli
, 解压
和 卷曲
使用以下命令:
sudo apt install php-cli unzip curl
系统会提示您确认安装,按 是
然后按回车。满足所有先决条件后,您可以继续安装 Composer。
下载并安装 Composer
Composer 提供了一个简洁的 PHP 脚本,可以从命令行下载并安装到您的机器上。我们需要使用 卷曲
下载此脚本,出于安全原因验证其真实性,然后执行它以安装 Composer。
确保您的终端在主目录中打开,然后使用以下命令下载安装脚本 卷曲
:
cd ~ curl -sS //getcomposer.org/installer -o composer-setup.php
接下来,我们需要通过将它的 SHA-384 哈希与 Composer Public Key/Checksums 页面上的哈希相匹配来验证我们下载的安装脚本是真实的。为此,请从 Composer Public Key 页面获取 SHA-384 哈希并将其存储在 shell 变量中。
Hash=`curl -sS //composer.github.io/installer.sig`
然后通过运行以下命令验证您是否已成功获取哈希并将其存储在变量中:
回声$哈希
您应该从终端获得一些随机字符串的输出,例如:
输出: e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a
现在,运行下面 Composer 提供的 PHP 代码来验证安装脚本的真实性:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$Hash') { echo '安装程序已验证'; } else { echo '安装程序损坏'; unlink('composer-setup .php'); } echo PHP_EOL;"
输出: 安装人员已验证
如果您看到任何其他输出,例如 安装程序损坏
,那么您就会知道脚本已损坏并且运行不安全。再次使用 curl 下载脚本,然后再次在终端中执行 PHP 代码以验证安装脚本。
成功验证安装程序后,您可以继续安装。您可以为单个项目全局或本地安装 Install Composer。
全局安装 Composer
将 Composer 全局安装为名为的系统范围命令 作曲家
, 运行以下命令:
须藤 php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Composer 将安装在 /usr/本地/bin
Ubuntu 20.04 系统上的目录,您将看到如下输出:
输出: 使用 Composer 的所有设置都正确 正在下载... Composer(版本 1.10.7)已成功安装到:/usr/local/bin/composer 使用它:php /usr/local/bin/composer
通过运行以下命令验证 Composer 是否已正确安装且功能正常:
作曲家
输出: ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ // /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.10.7 2020-06- 03 10:03:56 用法:命令 [选项] [参数]
您已经在 Ubuntu 20.04 系统上成功安装了 composer。您现在可以立即开始使用 Composer 来管理、更新和安装 PHP 项目中的依赖项。
在本地安装 Composer
当您无权在系统范围内安装 Composer 或者您只希望 Composer 用于单个项目时,在本地安装 Composer 非常有用。要在本地安装 Composer,请运行:
php作曲家-setup.php
上面的命令将在您当前的目录中创建一个名为的新文件 作曲家.phar
.您需要将此文件移动到项目根文件夹中才能使用 Composer 功能。可以使用如下所示的命令运行该文件。
php作曲家.phar
作曲家基础
现在,您已经在 Ubuntu 20.04 机器上安装了 Composer,让我们看看 Composer 的一些基础知识。 Composer 旨在促进依赖项的轻松安装和更新,为此它在项目根目录中创建了许多文件。让我们看一下使用 Composer 管理依赖项的项目的目录结构。
Composer 项目根结构:项目根目录/ ├── composer.json ├── composer.lock ├── Project.php ├── 作曲家.phar *仅当您在本地安装了 Composer └── 小贩 ├── autoload.php ├── 作曲家 │ ├── ClassLoader.php │ ├── LICENSE │ ├── autoload_classmap.php │ ├── ..... ├── .......
- 这
作曲家.json
位于项目根目录下的文件存储了项目所需的依赖(包)的所有信息。 - 这
composer.lock
保存有关为项目锁定版本的包的信息。 小贩
是存放所有包的目录,还有一些PHP脚本,比如自动加载.php
,这有助于将软件包自动包含在供应商目录中。- 最后,如果你在本地安装了 Composer,你必须有
作曲家.phar
项目目录中的文件以安装包。
所有这些文件都是在您使用 作曲家
或者 php作曲家.phar
第一次为您的项目下载和安装包的命令。那么让我们通过创建一个 Demo 项目来看看 Composer 的工作。
使用 Composer 创建您的第一个项目
第一步是为你的项目创建一个根目录,所以创建一个 目录
命令并使用导航到它 光盘
命令:
mkdir ~/ComposerDemo cd ~/ComposerDemo
现在,我们需要找到并安装构建演示项目所需的包/库。 Packagist 是主要的 Composer 存储库,它列出了所有可以使用 Composer 安装的公开可用的 PHP 包。
在这个例子中,我们将使用一个名为的 PHP 包 cakephp/chronos
,它是一个简单的日期和时间 API 扩展。因此,要生成一个新的 Composer 项目并安装 Chronos 包,请运行以下命令:
作曲家需要 cakephp/chronos
输出: 使用 ^2.0 版用于 cakephp/chronos ./composer.json 已创建 加载带有包信息的 composer 存储库 更新依赖项(包括 require-dev) 包操作:1 次安装,0 次更新,0 次删除 - 安装 cakephp/chronos(2.0.5) ): 下载 (100%) 写入锁定文件 生成自动加载文件
这 要求
选项获取并安装您想要的包并生成文件和目录,例如 作曲家.json
, composer.lock
和 小贩
在项目根目录下。你会看到 cakephp/chronos
被添加到 作曲家.json
如果您运行以下命令:
猫作曲家.json
输出: {“需要”:{“cakephp/chronos”:“^2.0”}}
接下来让我们在 Demo 项目中使用 Chronos,打开并创建一个名为 演示文件
使用 纳米
:
纳米演示.php
然后将以下代码添加到 演示文件
, 第二行包括 供应商/自动加载.php
是一个 Composer 文件,它会自动加载为项目安装的所有包和库。按保存文件 Ctrl+O
然后按退出nano编辑器 Ctrl+X
.
执行 演示文件
通过运行以下命令:
php 演示.php
输出: 现在:2020-06-23 17:07:45
将来当您需要更新项目的包和库时,只需运行以下命令:
作曲家更新
上面的命令将检查已安装软件包的较新版本并安全地更新它们,而不会破坏项目及其相互依赖的库。
我们已经了解了如何在 Ubuntu 20.04 机器上安装 Composer,并了解了您需要了解的有关 Composer 的基础知识。您现在可以通过在 Packagist 上搜索添加所需的包来尝试构建新项目。如果您想了解有关 Composer 及其选项的更多信息,请访问 Composer 在线文档页面。