Status:已弃用
本文介绍不再受支持的 Ubuntu 版本。如果您当前运行的服务器运行 Ubuntu 12.04,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
-
升级到Ubuntu 14.04.
- 从 Ubuntu 14.04 升级到 Ubuntu 16.04
- 将服务器数据迁移到支持的版本
Reason:
Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL)并且不再接收安全补丁或更新。本指南不再维护。
请参阅:
本指南可能仍然可以作为参考,但可能不适用于其他 Ubuntu 版本。如果有的话,我们强烈建议您使用针对您所使用的 Ubuntu 版本编写的指南。您可以使用页面顶部的搜索功能来查找更新的版本。
介绍
Composer是一个很棒的 PHP 依赖管理工具。它的作用是跟踪您声明项目需要的库,并为您获取和安装它们。它本身不是一个包管理器,因为默认情况下它不是全局使用的,而是在您可能拥有的每个单独的项目中使用。
它是干什么用的?假设您有一个应用程序项目依赖于几个库,而这些库甚至可以依赖于其他库。一旦您在一个小的 .json 文件中声明了这些依赖项,Composer 将跟踪这些库并为您安装它们。
在本教程中,我们将在 VPS 上安装 Composer,看看它是如何工作的以及我们可以用它做什么。为此,我将使用运行 Ubuntu 的服务器和灯堆栈已经安装在上面了。至于 Composer 的具体要求,它可以在 Linux、OS X 和 Windows 上运行,但需要安装 PHP 5.3.2+。
确保您已安装所有要求:
sudo apt-get install php5 git php5-curl
安装
首先,您需要将 Composer 下载到您的项目文件夹中。让我们在我们的目录中为此目的创建一个空文件夹/var/wwwApache Web 根文件夹名为我的项目:
cd /var/www
mkdir my_project
cd my_project
使用以下命令将 Composer 下载到此文件夹中:
curl -sS https://getcomposer.org/installer | php
您应该看到类似如下的成功消息:
All settings correct for using Composer
Downloading...
Composer successfully installed to: /var/www/my_project/composer.phar
Use it: php composer.phar
现在,如果您检查项目文件夹,您将看到只下载了一个文件:作曲家.phar- 可以从命令行运行的 PHP 存档文件。
如果您位于与项目不同的文件夹中,但不想导航回项目文件夹来下载 Composer,则可以指定--安装目录选项,它将在您指定的位置下载它:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/var/www/another_folder
您可以从任何地方运行此命令,它将安装 Composer另一个文件夹位于/var/www。要检查 Composer 是否正常工作,您可以使用以下命令,该命令将显示可用命令的列表:
php composer.phar
使用作曲家
要在项目中使用 Composer,您需要一个文件:作曲家.json。在此文件中,您将描述项目的依赖项。假设我们的项目取决于数字海洋图书馆这有助于与 DigitalOcean API 进行交互。那么让我们创建该文件:
nano composer.json
在此文件中,您可以粘贴以下内容:
{
"require": {
"toin0u/digitalocean": "1.2.1"
}
}
保存文件并退出。通过这个简单的代码块,您可以指定您的项目需要该库(称为数字海洋)由供应商创建toin0u。在冒号后面写下您需要的版本 - 在本例中是1.2.1。在这里您可以指定您想要的任何版本,甚至可以使用通配符。但是您从哪里获得有关包裹的信息呢?
有一个很棒的网站,您可以在其中找到很多图书馆,其中包含在 中指定的所有必要信息。作曲家.json file: 包装学家。 DigitalOcean API 库也可以在 Packagist 上找到您可以在那里准确地检查您必须在require block.
要对版本使用通配符,您可以指定如下内容:
"toin0u/digitalocean": "1.2.*"
这将匹配任何以以下开头的版本1.2(1.2.0、1.2.1 等)。此外,您可以指定多个依赖库,而不仅仅是一个。您可以通过在 require 块中添加多个条目来做到这一点:
"require": {
"toin0u/digitalocean": "1.2.1",
"acme/foo": "1.0"
}
好的,现在您的项目已经指定了其依赖项,您需要运行 Composer 命令来获取它们并将其安装到您的项目中:
php composer.phar install
这将找到与我们指定的编号匹配的最新版本的软件包,并将其下载到名为的文件夹中/vendor就在您的项目中。在我们的示例中,我们现在将在供应商/toin0u/digitalocean文件夹。此外,Composer 创建了一个作曲家.lock它在其中指定所安装的软件包的确切版本,并将项目锁定到这些版本。
目的.lock文件的作用是限制 Composer 将其他版本安装到您的项目中。因此,当您运行 install 命令时,Composer 将首先检查此文件并安装其中指定的内容,而不是安装.json文件告诉它。这很棒,因为如果您的依赖关系相当严格并且其他人需要部署您的项目,您可以放心,正在使用完全相同的库版本。
正如我们所见,如果没有.lock文件,Composer 将根据它从安装的依赖项创建一个.json文件。但如果你确实想覆盖.lock文件并将依赖库升级到新版本,可以运行以下命令:
php composer.phar update
这将获得符合以下条件的依赖库的最新稳定版本作曲家.json文件并覆盖作曲家.lock包含新依赖项的文件。如果您只想更新特定的库(在大多数情况下这很可能是正确的),您可以运行update命令并将需要更新的包作为选项传递,格式如下:
php composer.phar update vendor/package vendor/package2
或者您可以使用通配符更新来自特定供应商的所有软件包:
php composer.phar update vendor/*
自动加载
Composer 的另一个很酷的功能是它的自动加载功能。对于那些提供自动加载信息的库,Composer 会自动生成一个自动加载.php直接在文件中/vendor您可以包含在项目中的文件夹。然后您可以直接开始使用这些库中的类。在您的 PHP 项目中,您可以指定:
require 'vendor/autoload.php';
你就可以走了。
结论
Composer 是 PHP 领域广泛使用的工具。有许多项目和框架使用 Composer 来管理和安装其包和依赖项。所以熟悉它的工作原理非常重要。
文章提交者:Danny