Composer依赖管理工具

常见包管理器

java => maven
nodejs => npm
objective-c => cocoapods
php => pear

pear缺点

依赖处理容易出现问题
配置非常复杂
难用的命令行接口

Composer

Composer 是 PHP 的一个依赖管理工具,不是包管理器,它涉及‘packages’和libraries。

Composer 解决了那些问题:

a) 你有一个项目依赖于若干个库。
b) 其中一些库依赖于其他库。
c) 你声明你所依赖的东西。
d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。

系统要求

运行 Composer 需要 PHP 5.3.2+ 以上版本。

安装

Composer-Setup.exe
win操作系统、需要翻墙
composer.phar
通用安装方式、不需要翻墙

下载composer.phar

直接下载
https://getcomposer.org/download/
命令行下载
php -r "readfile('https://getcomposer.org/installer');"|php

局部安装/全局安装

局部:
将composer.phar文件复制到任意目录(比如项目根目录下),然后通过php composer.phar 指令即可使用 composer了
全局(max/linux):
sudo mv composer.phar /usr/local/bin/composer

版本更新

composer selfupdate

使用composer

创建文件composer.json添加所需要的依赖库的信息:

{
    "require": {
        "monolog/monolog": "1.0.*",
        "phpmailer/phpmailer": "~5.2"
    }
}

运行:

composer install

composer根据json配置开始下载所依赖的库文件
composer.lock作用锁定当前的配置文件,如果已存在,在下次执行install操作时会自动读取composer.lock中的信息,即使你已经修该了composer.json文件此时也不会生效。

composer update

此操作会直接从composer.json文件读取信息,下载库文件,然后同步更新composer.lock。此时这个操作可以看作先删除composer.lock文件,然后在执行install命令操作。

composer update monolog/monolog

指定某一个库的更新,其他的没有影响。

以上为compose的简单使用,有了它再使用第三方库操作起来是不是感觉很简单、很方便。

关于composer.json文件

各个属性字段详解

1、name

包的名字。由供应方(vendor)名和项目名组成,用 / 分隔。

在发布包的时候需要填。

2、description

对包的一个简短描述,通常是一行的长度。

在发布包的时候需要填。

3、version

包的版本。

格式必须是 X.Y.Z,选择性后缀:-dev、-alphaN、-betaN、-RCN。

4、type

包的类型,默认为 library。

包类型用于定制安装逻辑。如果你的包的安装需要一些特殊的逻辑,你可以定义一个定制的类型。它可以是一个 symfony-bundle 的类型,或者 wordpress-plugin,或者 typo3-module。这些类型将被特定的项目所用,它们将提供安装器来安装这些类型的包。

Composer 支持 3 种类型:

library:默认值。它将复制文件到 vendor 目录。

project:它表示这是个项目,而不是库。比如像 Symfony 标准版这种应用。

metapackage:一个含有依赖的空包,能触发安装,但不包含文件,不会向文件系统写任何东西。

composer-install:为其他的定制类型的包提供安装器的包。

5、keywords

一个与包相关的关键词数组。用于包的搜索和过滤。

可选。

6、homepage

项目的网站 URL。

可选。

7、time

版本发布时间。必须是 YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS 格式。

可选。

8、license

包的许可证。可以是字符串或字符串数组。

可选,但强烈建议加上。

9、authors

包的作者。是个对象数组。

每个 author 对象有这些属性:

name:名字
email:邮箱
homepage:网站 URL

10、support

各种关于该项目如何获取支持的信息。包含这些属性:

email:获取支持的邮箱
issues:问题跟踪的 URL
forum:论坛的 URL
wiki:Wiki 的 URL
irc:IRC 的频道
source:查看或下载源码的 URL
。。。

总结:本周主要学了composer,最近督办开发时间有点紧,有点累,五一好好休息,回来又将是满血带复活石那种

你可能感兴趣的:(Composer依赖管理工具)