如何在 Debian 8 上安装和使用 Composer

介绍

Composer是PHP的一种流行的依赖管理工具,主要用于方便项目依赖的安装和更新,它会检查一个特定的项目依赖哪些其他包,并为您安装它们,根据项目要求使用相应的版本。

本教程将展示如何在 Debian 8 服务器上安装并开始使用 Composer。

前提条件

对于这个教程,你将需要:

步骤 1 - 安装依赖

在下载和安装 Composer 之前,我们需要确保我们的服务器安装了所有必要的依赖。

首先,更新包管理器的缓存。

1sudo apt-get update

现在,让我们安装依赖程序。我们需要‘curl’来下载Composer和‘php5-cli’,一个PHP包,来安装和运行它。Composer使用‘git’,一个版本控制系统,来下载项目依赖程序。

1sudo apt-get install curl php5-cli git

现在基本依赖已安装,让我们继续安装Composer本身。

步骤 2 – 下载和安装 Composer

我们将按照 Composer’s Official Documentation中所写的指示进行操作,并在/usr/local/bin下对 Composer 进行微小的修改,这将允许服务器上的每个用户使用 Composer。

下载安装程序到/tmp目录。

1php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"

点击 Composer’s pubkeys and signatures page,然后复制顶部的 SHA-384 字符串,然后执行以下命令,以您复制的字符串代替 `sha_384_string。

1php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === 'sha_384_string') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"

此命令会检查您从 Composer 网站上下载的文件的哈希,如果匹配,则会打印 Installer verified . 如果不匹配,则会打印 ** Installer corrupt** ,在这种情况下,您应该双重检查您是否正确复制了 SHA-384 字符串。

接下来,我们将安装Composer。 要在/usr/local/bin下全球安装它,我们将使用--install-dir旗帜;--filename告诉安装程序Composer的可执行文件的名称。

1sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

您将看到如下这样的消息:

1[secondary_label Output]
2All settings correct for using Composer
3Downloading...
4
5Composer (version 1.3.2) successfully installed to: /usr/local/bin/composer
6Use it: php /usr/local/bin/composer

您可以通过检查其版本来验证 Composer 是否正确安装。

1composer --version

您应该看到已安装的版本. 在此写作时,该版本是:

1[label Composer version]
2Composer version 1.3.2 2017-01-27 18:23:41

最后,您可以安全地删除安装程序脚本,因为您不再需要它。

1rm /tmp/composer-setup.php

Composer 现在已设置并运行,等待您的项目使用,在下一部分,您将生成 composer.json 文件,其中包括您项目依赖的 PHP 库。

步骤 3 — 生成 composer.json 文件

要为一个项目使用 Composer,你需要一个composer.json文件。 该composer.json文件告诉 Composer 需要为您的项目下载哪些依赖,并且允许安装每个软件包的版本。

您不需要手动创建此文件;如果您这样做,很容易遇到语法错误。Composer在使用要求命令为您的项目添加依赖时自动生成composer.json文件。

使用 Composer 作为项目中的依赖程序安装包的过程通常涉及以下步骤:

  • 确定应用程序需要什么类型的库
  • Packagist.org上搜索合适的开源库,这是Composer 的官方存储库* 选择您希望依赖 的包*运行composer require以将依赖包含在composer.json文件中,并安装 package

我们将看到如何在实践中使用简单的演示应用程序。

该应用程序的目的是将一个特定的句子转换为一个 slug,这是一个URL友好的字符串,用于将页面标题转换为URL路径(如本教程的URL的最终部分)。

让我们从创建一个项目目录开始,我们将其称为 slugify :

1cd ~
2mkdir slugify
3cd slugify

接下来,让我们去寻找我们需要使用的图书馆。

在 Packagist 上搜索包裹

接下来,我们将搜索 Packagist 一个包,以帮助生成 slug. 如果你搜索slug,你会看到一个包的列表. 在列表中的每个包的右侧,你会看到两个数字:顶部的数字是包安装了多少次,而底部的数字显示了包在 GitHub 上被安装了多少次。

一般来说,具有更多安装和星星的包往往更稳定,因为许多人正在使用它们。

我们需要的是一个简单的 string-to-slug 转换器. 作为一个例子,我们将使用包 cocur/slugify. 它似乎是一个很好的匹配,因为它有一个合理的数量的安装和星星。

您会注意到 Packagist 上的包有供应商名称和包名称. 每个包都有一个独特的标识符(名称空间)在 GitHub 用于其存储库的相同格式中: vendor/package. 我们要安装的库使用名称空间 cocur/slugify. 名称空间是我们需要的,以便在我们的项目中要求该包。

现在我们已经确定了我们想要的库,让我们将其添加到composer.json文件中。

要求一包

我们可以运行composer require以将库列为依赖,并为该项目生成composer.json文件:

1composer require cocur/slugify
1[secondary_label Output]
2Using version ^2.3 for cocur/slugify
3./composer.json has been created
4Loading composer repositories with package information
5Updating dependencies (including require-dev)
6Package operations: 1 install, 0 updates, 0 removals
7  - Installing cocur/slugify (v2.3) Downloading: 100%         
8Writing lock file
9Generating autoload files

正如您可以从输出中看到的,Composer 会自动决定使用哪个版本的包. 如果您现在检查您的项目目录,它将包含两个新的文件: composer.jsoncomposer.lock,以及一个 vendor/ 目录:

1ls -l
1[secondary_label Output]
2total 12
3-rw-r--r-- 1 sammy sammy 59 Feb 1 13:43 composer.json
4-rw-r--r-- 1 sammy sammy 2896 Feb 1 13:43 composer.lock
5drwxr-xr-x 4 sammy sammy 4096 Feb 1 13:43 vendor

composer.lock文件用于存储有关每个软件包安装的版本的信息,并确保如果其他人克隆您的项目并安装其依赖性时使用相同的版本。

<$>[注] 注: 安装已包含 composer.json 文件的项目时,需要运行 composer install 才能下载该项目的依赖性。

您可能会注意到composer.lock文件包含有关我们项目所依赖的PHP库版本的具体信息。

理解版本限制

如果你检查你的composer.json文件的内容,你会看到这样的东西:

1cat composer.json
1[label Output]
2{
3    "require": {
4        "cocur/slugify": "^2.3"
5    }
6}

Composer 支持多个不同的限制和格式来定义所需的软件包版本,以便提供灵活性,同时保持您的项目稳定。由自动生成的 composer.json 文件使用的 caret 操作员是建议的操作员,以实现最大程度的互操作性,然后是语义版本化。

到目前为止,我们已经看到如何使用composer.json文件添加和限制我们项目所需的PHP库,下一步是实际使用这些库在我们的应用程序中。

步骤 4 – 包括 Autoload 脚本

Composer提供了一个自动加载脚本,您可以将其纳入您的项目,以便免费获得自动加载。这使您更容易与依赖性工作,并定义自己的命名空间。您唯一需要做的就是在任何类实例之前,将vendor/autoload.php文件纳入您的PHP脚本。

使用nano或您最喜欢的文本编辑器,创建一个test.php脚本,我们将使用cocur/slugify库。

1nano test.php
1[label test.php]
2<?php
3require __DIR__ . '/vendor/autoload.php';
4
5use Cocur\Slugify\Slugify;
6
7$slugify = new Slugify();
8
9echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');

您可以在命令行中运行脚本:

1php test.php

这应该产生产量:

1[secondary_label Output]
2hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it

您已经完全安装了 Composer,但继续阅读以了解如何维护安装。

步骤 5 — 更新作曲家和项目依赖(可选)

要更新 Composer 本身,您可以使用其提供的内置命令自我更新。 由于 Composer 已在全球范围内安装,您需要使用根权限运行命令。

1sudo -H composer self-update

您可以更新一个或多个特定的库,具体列出它们的作曲家更新

1composer update namespace/package

如果您想要更新所有项目依赖,请运行更新命令。

1composer update

这将检查您在项目中所需的库的更新的版本。如果发现了更新的版本,并且它与composer.json文件中定义的版本限制相兼容,它将取代之前安装的版本。

结论

Composer 是一个强大的工具,每个 PHP 开发人员都应该在他们的实用带中。 除了提供一个易于和可靠的方式来管理项目依赖,它还为共享和发现社区创建的 PHP 包建立了一个新的事实标准。

在本教程中,我们简要介绍了Composer的基本知识:如何安装它,如何创建一个项目并为它找到套件,以及如何维护它。

Published At
Categories with 技术
Tagged with
comments powered by Disqus