资讯专栏INFORMATION COLUMN

Composer 简介

Code4App / 1793人阅读

摘要:默认情况下它不会在全局安装任何东西。这种想法并不新鲜,受到了和的强烈启发。其中一些库依赖于其他库。系统要求运行需要以上版本。一些敏感的设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。这是的二进制文件。

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

1. 依赖管理

Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

这种想法并不新鲜,Composer 受到了 node"s npm 和 ruby"s bundler 的强烈启发。而当时 PHP 下并没有类似的工具。

Composer 将这样为你解决问题:

你有一个项目依赖于若干个库。

其中一些库依赖于其他库。

你声明你所依赖的东西。

Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。

2. 声明依赖关系

比方说,你正在创建一个项目,你需要一个库来做日志记录。你决定使用 monolog。为了将它添加到你的项目中,你所需要做的就是创建一个 composer.json 文件,其中描述了项目的依赖关系。

{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

我们只要指出我们的项目需要一些 monolog/monolog 的包,从 1.2 开始的任何版本。

系统要求

运行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。

我们将从包的来源直接安装,而不是简单的下载 zip 文件,你需要 git 、 svn 或者 hg ,这取决于你载入的包所使用的版本管理系统。

Composer 是多平台的,我们努力使它在 Windows 、 Linux 以及 OSX 平台上运行的同样出色。

安装 - *nix

下载 Composer 的可执行文件

局部安装

要真正获取 Composer,我们需要做两件事。首先安装 Composer (同样的,这意味着它将下载到你的项目中):

curl -sS https://getcomposer.org/installer | php

注意: 如果上述方法由于某些原因失败了,你还可以通过 php >下载安装器:

php -r "readfile("https://getcomposer.org/installer");" | php

这将检查一些 PHP 的设置,然后下载 composer.phar 到你的工作目录中。这是 Composer 的二进制文件。这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助用户在命令行中执行一些操作。

你可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):

curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
全局安装

你可以将此文件放在任何地方。如果你把它放在系统的 PATH 目录中,你就能在全局访问它。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。

你可以执行这些命令让 composer 在你的系统中进行全局调用:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

注意: 如果上诉命令因为权限执行失败, 请使用 sudo 再次尝试运行 mv 那行命令。

现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar

全局安装 (on OSX via homebrew)

Composer 是 homebrew-php 项目的一部分。

brew update
brew tap josegonzalez/homebrew-php
brew tap homebrew/versions
brew install php55-intl
brew install josegonzalez/php/composer
安装 - Windows 使用安装程序

这是将 Composer 安装在你机器上的最简单的方法。

下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer 命令。

下载完以后就双击打开开始安装,安装过程中需要选择php的安装路径

composer会自动设置环境变量。

win+R输入cmd打开命令提示符面板,输入composer,如果出现下图所示说明安装成功 

手动安装

设置系统的环境变量 PATH 并运行安装命令下载 composer.phar 文件:

C:Usersusername>cd C:in
C:in>php -r "readfile("https://getcomposer.org/installer");" | php

注意: 如果收到 readfile 错误提示,请使用 http 链接或者在 php.ini 中开启 php_openssl.dll 。

在 composer.phar 同级目录下新建文件 composer.bat :

C:in>echo @php "%~dp0composer.phar" %*>composer.bat

关闭当前的命令行窗口,打开新的命令行窗口进行测试:

C:Usersusername>composer -V
Composer version 27d8904
使用 Composer

现在我们将使用 Composer 来安装项目的依赖。如果在当前目录下没有一个 composer.json 文件,请查看基本用法章节。

要解决和下载依赖,请执行 install 命令:

php composer.phar install

如果你进行了全局安装,并且没有 phar 文件在当前目录,请使用下面的命令代替:

composer install

继续上面的例子,这里将下载 monolog 到 vendor/monolog/monolog 目录。

自动加载

除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中:

require "vendor/autoload.php";

现在我们就可以使用 monolog 了!


test:git clone https://github.com/douyasi/yascmf.git && composer install

  

转自 http://docs.phpcomposer.com/00-intro.md
http://www.phpcomposer.com/ http://packagist.cn/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31929.html

相关文章

  • 使用Codeception进行Yii2的单元测试(一)安装以及简介

    摘要:一简介作为工程师,我们很可能遇到一些有必要的进行单元测试的场景。本系列文章就来介绍下,在框架下,如何使用进行单元测试。 一、简介 作为php工程师,我们很可能遇到一些有必要的进行单元测试的场景。本系列文章就来介绍下,在Yii2框架下,如何使用Codeception进行单元测试。本篇就首先介绍Yii2,以及Codeception的安装。 二、Yii2和codeception安装 安装Yi...

    dabai 评论0 收藏0
  • PHP 包与扩展的管理工具 Pear、Composer 与 Pecl

    摘要:的包管理器是,用来浏览并搜索查看最新发行版下载。的包管理器是下一代的,使用编写,以格式发布。二发布时间轴三安装与使用安装主要是安装和这两个包管理器,然后通过包管理器安装其他。 PHP社区提供了几个管理扩展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情况下去使用这些工具必然会出现困惑,所以下面就简单介绍下这几个管理工具。 一、简介 下面简要介绍 Pear、P...

    Batkid 评论0 收藏0
  • composer安装与使用

    摘要:简介是用来管理依赖关系的工具。你可以在自己的项目中声明所依赖的外部工具库,会帮你安装这些依赖的库文件。会找出哪个版本的包需要安装,并安装它们将它们下载到你的项目中。在安装目录下新建一个文件,并将下列代码保存到此文件中。 composer简介 composer是PHP用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Com...

    Jensen 评论0 收藏0
  • php命名空间简介

    摘要:全局命名空间接触过系统的同学都应该知道根目录吧,我们可以将全局命名空间想象为的根目录,在该目录下存放的都是本身提供的各种接口类函数常量。 以下是我对命名空间的一些体会和理解,最好先看下php的官方文档再来看此文,会更好一点。由于水平有限,文中如有纰漏,希望指出 前言 在php5.3以上的版本中,php引入了命名空间(以下称呼为namespace)这个性能。个人认为,这是非常重要的一项改...

    cangck_X 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<