如何安装和在Ubuntu 14.04使用Composer

介绍

Composer是PHP流行的依赖管理工具,建立主要是为了方便安装和更新项目的依赖。 它将检查特定项目所依赖的其他包,并为您安装它们,根据项目要求使用适当的版本。

本教程将展示如何在Ubuntu 14.04服务器上安装和开始使用Composer。

先决条件

对于本教程,您将需要:

  • 运行Ubuntu 14.04的服务器
  • 访问服务器作为一个普通用户sudo的权限

第1步 - 安装依赖关系

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

首先,通过运行以下命令更新包管理器高速缓存:

sudo apt-get update

现在,让我们安装依赖项。 我们需要curl ,以下载Composer和php5-cli安装和运行它。 git所使用的Composer下载项目依赖。 一切都可以使用以下命令安装:

sudo apt-get install curl php5-cli git

您现在可以继续下一步。

第2步 - 下载并安装Composer

Composer安装非常简单,可以使用单个命令完成:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

这将下载并安装Composer作为一个全系统的命令命名的composer ,下/usr/local/bin 输出应如下所示:

Output#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

要测试安装,请运行:

composer

你应该得到类似这样的输出:

Output   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.0-dev (9859859f1082d94e546aa75746867df127aa0d9e) 2015-08-17 14:57:00

Usage:
 command [options] [arguments]

Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
 --profile             Display timing and memory usage information
 --working-dir (-d)    If specified, use the given directory as working directory.

. . .

这意味着Composer已成功安装在系统上。

如果您希望为您可能在此服务器上托管的每个项目拥有单独的Composer可执行文件,则可以在每个项目的基础上在本地进行简单安装。 当系统用户没有在系统范围内安装软件的权限时,此方法也很有用。 在这种情况下,安装操作可以这样完成curl -sS https://getcomposer.org/installer | php curl -sS https://getcomposer.org/installer | php -这将产生一个composer.phar在当前目录下,它可以与执行文件php composer.phar [command]

第3步 - 生成composer.json文件

为了在项目中使用的Composer,你需要一个composer.json文件。 composer.json文件主要是告诉Composer哪些依赖它需要下载为您的项目,而且每个包的版本允许安装。 这是极为重要的,以保持您的项目一致,并避免安装不稳定的版本,可能会导致向后兼容性问题。

您不需要手动创建此文件 - 当您这样做时很容易遇到语法错误。 Composer自动生成composer.json当您使用添加依赖到项目文件require的命令。 还可以以相同的方式添加其他依赖项,而无需手动编辑此文件。

使用Composer将软件包作为依赖项安装在项目中的过程通常包括以下步骤:

  • 确定应用程序需要什么类型的库
  • 研究合适的开源库Packagist.org ,Composer官方资料库
  • 选择您要依赖的包
  • 运行composer require包括在依赖composer.json文件和安装包

我们将使用一个简单的演示应用程序来了解这是如何工作的。

此应用程序的目的是给定的句子转换成一个URL字符串友好- 蛞蝓 这通常用于将页面标题转换为URL路径(如本教程的URL的最后部分)。

让我们开始为我们的项目创建一个目录。 我们将slugify调用它:

cd ~
mkdir slugify
cd slugify

在Packagist上搜索Packages

现在是时候来搜索Packagist.org为一个包,可以帮助我们产生蛞蝓 如果你在Packagist上搜索术语“slug”,你会得到类似的结果:

Packagist搜索:easy-slug / easy-slug,松饼/ slug,ddd / slug,zelenin / slug,webcastle / slug,anomaly / slug-field_type

您会在列表中每个包的右侧看到两个数字。 顶部的数字表示软件包的安装次数,底部的数字表示软件包在GitHub上加载了多少次。 您可以根据这些数字重新排序搜索结果(查找搜索栏右侧的两个图标)。 一般来说,具有更多安装和更多星形的包通常更稳定,因为这么多人正在使用它们。 检查包描述是否相关也很重要 - 这是否真的是你想要的?

我们需要的是一个简单的字符串到slug转换器。 从搜索结果中,包cocur/slugify似乎是一个很好的匹配,具有安装和恒星的合理费用。 (包是比屏幕截图显示的页面更下一页。)

你会发现,在Packagist的包有供应商名称和名称。 每个包都有相同格式的唯一标识符(命名空间)Github上用于其仓库: vendor/package 我们要安装库使用命名空间cocur/slugify 命名空间是我们需要为需要在我们的项目包。

需要一个包

现在,我们确切地知道我们要安装哪个包,我们可以运行composer require将它作为一个依赖,也产生了composer.json项目文件:

composer require cocur/slugify
OutputUsing version ^1.3 for cocur/slugify
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing cocur/slugify (v1.3)
    Downloading: 100%         

Writing lock file
Generating autoload files

从输出中可以看到,Composer自动决定应该使用哪个版本的软件包。 如果你现在检查你的项目目录,它将包含两个新文件: composer.jsoncomposer.lockvendor目录:

ls -l
Outputtotal 12
-rw-rw-r-- 1 sammy sammy   59 Sep  9 16:22 composer.json
-rw-rw-r-- 1 sammy sammy 2835 Sep  9 16:22 composer.lock
drwxrwxr-x 4 sammy sammy 4096 Sep  9 16:22 vendor

composer.lock文件用于存储有关所安装的每个包的版本的信息,并确保如果别人克隆你的项目,并安装它的依赖同样的版本使用。 vendor目录是项目依赖的位置。 vendor的文件夹应该被提交到版本控制-你只需要包括composer.jsoncomposer.lock文件。

当安装已包含一个项目composer.json文件,你需要运行composer install ,以便下载该项目的依赖。

了解版本限制

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

cat composer.json
composer.json
{
    "require": {
        "cocur/slugify": "^1.3"
    }
}

您可能会注意到特殊字符^上的版本号之前composer.json Composer支持几种不同的约束和格式来定义所需的软件包版本,以提供灵活性,同时保持项目稳定。 插入符号( ^通过自动生成的使用)运营商composer.json文件是最大的互操作性建议的操作员,下面语义版本 在这种情况下,它定义1.3作为最小兼容版本,并且允许更新低于2.0的任何未来的版本。

一般来说,你将不再需要在您的版本约束篡改composer.json文件。 但是,在某些情况下,可能需要手动编辑约束 - 例如,当所需库的主要新版本发布并且要升级时,或者当您要使用的库不遵循语义版本控制时。

以下是一些例子,让您更好地了解Composer版本约束的工作原理:

约束 含义 允许的示例版本
^ 1.0 > = 1.0 <2.0 1.0,1.2.3,1.9.9
^ 1.1.0 > = 1.1.0 <2.0 1.1.0,1.5.6,1.9.9
〜1.0 > = 1.0 <2.0.0 1.0,1.4.1,1.9.9
〜1.0.0 > = 1.0.0 <1.1 1.0.0,1.0.4,1.0.9
1.2.1 1.2.1 1.2.1
1. * > = 1.0 <2.0 1.0.0,1.4.5,1.9.9
1.2。* > = 1.2 <1.3 1.2.0,1.2.3,1.2.9

对于Composer版本约束的更深入了解,检查他们的官方文件

第4步 - 包括自动加载脚本

Composer还提供了一个自动加载脚本,您可以将其包含在项目中以免费自动加载。 这使得它更容易使用您的依赖和定义自己的命名空间。

你需要做的唯一事情是包括vendor/autoload.php在PHP脚本文件,任何类实例化之前。

让我们再回到slugify示例应用程序。 我们将创建一个test.php脚本,我们将使用cocur / slugify库:

vim test.php
test.php
<?php
require __DIR__ . '/vendor/autoload.php';

use Cocur\Slugify\Slugify;

$slugify = new Slugify();

echo $slugify->slugify('Hello World, this is a long sentence and I need to make a slug from it!');

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

php test.php

这应该产生输出hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it

第5步 - 更新项目依赖关系

每当你想更新项目的依赖,你只需要运行update命令:

composer update

这将检查您的项目中所需的库的较新版本。 如果发现新版本,它是用在定义的版本兼容约束composer.json文件,它将替换安装以前的版本。 composer.lock文件将被更新,以反映这些变化。

您还可以通过运行以下命令来更新一个或多个特定库:

composer update vendor/package vendor2/package2

结论

Composer是每个PHP开发人员在其实用程序中应该具有的强大工具。

除了提供一种简单可靠的方式来管理项目依赖项,它还建立了一个新的事实标准,用于共享和发现社区创建的PHP包。

本教程涵盖了在Ubuntu 14.04上开始使用Composer的基本知识。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏