composer 说明<转>

转自  http://blog.csdn.net/zzulp/article/details/18981029

Composer是一个基于项目的依赖管理器,负责将PHP项目所依赖的包或库安装到项目所在的目录中,默认它不会安装任何数据到全局。它用于取代之前所使用的pear工具。

1 安装Composer

[plain] view plaincopyprint?

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

2 简单应用
我们只需要声明一个项目所依赖的包或库即可,此后其他的事情就由Composer来处理了。因此使用Composer最重要的就是在项目目录中编写composer.json配置文件。例如你有一个项目,需要依赖monolog,可以这样写composer.json文件:
{
    "require": 
    {
        "monolog/monolog": "1.2.*"
    }
}
有了此文件后,在项目目录中执行composer install,即会在项目目录的vendor/目录下创建其所依赖的库。
另一方面,包含了composer.json的目录,也可以发布出去,让其他人通过composer进行安装。只需要在packagelist网站,把此包传上去即可。

3 配置文件说明

Composer使用json作为其配置文件的格式。在工程的根目录下composer.json所定义的包称为root包。在配置文件中有如下的属性。

3.1 require
格式为: "require":{"vendor-name/package-name":"version", ...}
名字部分会作为vendor下的路径进行创建
版本支持精确的版本号,也支持范围如>=1.0; >=1.0,<2.0; ","作为逻辑与,而"!"作为逻辑或的意思。示例中使用了通配符*
版本也支持tag或branch名称。
类似的有require-dev,前者用于声明项目发布版本的依赖包,后者用于声明项目开发或测试中依赖的包。

3.2 autoload

composer支持PSR-0,PSR-4,classmap及files包含以支持文件自动加载。PSR-4为推荐方式。

3.2.1 Files类型
格式:"autoload":{"files":["path/to/1.php","path/to/2.php",...]}
支持将数组中的文件进行自动加载,文件的路径相对于项目的根目录。缺点是麻烦,需要将所有文件都写进配置。

3.2.2 classmap类型
格式:"autoload":{"classmap": ["path/to/src1","path/to/src2",...]}
支持将数组中的路径下的文件进行自动加载。其很方便,但缺点是一旦增加了新文件,需要执行dump-autoload命令重新生成映射文件vendor/composer/autoload_classmap.php。

3.2.3 psr-0类型
格式:"autoload":{"psr-0":{
                            "name1\\space\\":["path/",...],
                            "name2\\space\\":["path2/",...],
                          }
                 }
支持将命名空间映射到路径。命名空间结尾的\\不可省略。当执行install或update时,加载信息会写入vendor/composer/autoload_namespace.php文件。如果希望解析指定路径下的所有命名空间,则将命名空间置为空串即可。
需要注意的是对应name2\space\Foo类的类文件的路径为path2/name2/space/Foo.php

3.2.4 psr-4类型
格式:"autoload":{"psr-4":{
                            "name1\\space\\":["path/",...],
                            "name2\\space\\":["path2/",...],
                          }
                 }
支持将命名空间映射到路径。命名空间结尾的\\不可省略。当执行install或update时,加载信息会写入vendor/composer/autoload_psr4.php文件。如果希望解析指定路径下的所有命名空间,则将命名空间置为空串即可。
需要注意的是对应name2\space\Foo类的类文件的路径为path2/space/Foo.php,name2不出现在路径中。

PSR-4和PSR-0最大的区别是对下划线(underscore)的定义不同。PSR-4中,在类名中使用下划线没有任何特殊含义。而PSR-0则规定类名中的下划线_会被转化成目录分隔符。

3.3 name
格式:"name":"vendor/package"
如果要发布一个包,你需要指定包的名字信息。

3.4 version
格式:"version":"1.0.2"
如果要发布一个包,你需要指定包的版本号。版本号的格式为X.Y.Z或vX.Y.Z,其后可以加后缀如-dev,-patch,-alpha,-beta或-RC。除dev外,尾上还可加一个数字,如1.0.0-alpha3。

3.5 description
格式:"description":"your own description at here!"
如果要发布一个包,可以指定一个简短的介绍

3.5 type
格式:"type":"library"
说明包的类型,支持如下library,project,metapackage,composer-plugin,默认为library

3.6 keywords
格式:"keywords":["logging","database","redis"]
一个数组的关键字,用于搜索或过滤时使用。

3.7 homepage
可选的,说明项目的网站地址

3.8 time/license
说明项目的时间和License,时间格式为YY-MM-DD HH:MM:SS

3.9 authors
格式:"authors":[ 
                    {"name":"ss","email":"[email protected]","homepage":"","role":""},...
                ]
用于说明项目的作者信息,为可选的。

3.10 support
格式:"support":{"emial":"","issues":"","forum":"","wiki":"","irc":"" }
用于说明项目的支持信息

3.11 conflict
用于声明与本包有冲突的包的版本,使用类似于require。

3.12 replace
用于声明需要替换的包,使用类似于require

3.13 provided
用于说明本包实现了某个包的接口

3.14 suggest
格式:"suggest":{"vendor/package":"Some description!"}
用于说明可选的,用于增强功能的包及说明。

4 命令行工具
有了配置文件后,便可以使用composer命令来执行,有如下命令
init                 进入交互式向导,在当前目录下生成composer.json文件
install           根据配置进行安装
    选项 --prefer-source
             --prefer-dist
             --dry-run
             --dev/--no-dev
             -o  将psr0/4转换为classmap以提升性能
update [package-name ...] 根据配置升级指定的包
search [pattern]                    从packagelist中搜索包
show   [package-name]      显示包的信息
depends package               分析项目中包的依赖
validate                                  验证配置文件内容
status                                    检查代码是修改信息
self-update                          升级composer本身
config                                    配置composer本地或全局选项,可以--list显示所有可配置项   格式为conifg [option] [key] [value...]
create-project vendor/package path version 在指定路径下下载一个项目,默认从packagelist上搜索
dump-autoload                   当类映射中加入新类时,用于更新加载器

5 自动加载

对于composer管理的依赖,如果希望自动加载只需要在文件中加入:require ‘vendor/autoload.php‘
拿上面的例子,使用依赖的类就十分简单了,使用packet-name\class-name就可以直接访问了。如
$log = new Monolog\Logger();

6 杂项

composer.lock文件用于记录各依赖的版本,如果使用了VCS,即此文件也需要进行提交。因为如果此文件存在,即composer会按照此文件中的版本进行下载,会忽略composer.json文件。如果需要更新版本,则需要修改composer.json,并执行update命令,此时会下载新版本,并更新composer.lock文件。

composer 说明<转>

时间: 2024-08-29 08:31:24

composer 说明<转>的相关文章

View Composer Agent initialization error (16): Failed to activate software license (1026556)

1.       桌面发布过程中偶尔有些桌面池中的桌面提示无法访问代理,查看报错信息如下:View Composer Agent initialization error (16):Failed to activate software license (1026556). KB地址:https://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1026556 主要意思是Windows 7系统激活的

composer.json:项目安装

基本用法 基本用法 安装 composer.json:项目安装 关于 require Key 包名称 包版本 下一个重要版本(波浪号运算符) 稳定性 安装依赖包 composer.lock - 锁文件 Packagist 自动加载 安装 安装 Composer,你只需要下载 composer.phar 可执行文件. curl -sS https://getcomposer.org/installer | php 详细请查看 简介 章节. 要检查 Composer 是否正常工作,只需要通过 php

Composer更新慢的终极解决方案

本文来自这里,纯粹为了备份 开始用Composer管理PHP的包依赖后,感觉神清气爽啊,不过问题很快就来了,更新速度太TMD的慢了啊有木有,基本到了没法用的地步.怎么办?那就是VPN啦.买个VPN,问题一下解决了.但是,公司的路由器是关闭VPN相关的端口的,只开放个80,8000等端口走走HTTP协议.怎么办?程序员们都知道,有个好用又免费的神器,就是GoAgent. 让命令行使用代理 怎么安装GoAgent就不说啦,网上教程一大堆,自己找去.安装还后,各种浏览器都可以开心的用上代理啦,从此Gi

Composer 笔记(PHPconf 台湾)

演讲人:by 大泽木小铁@KKBox composer解决问题的场景: 方便接手项目的新人知道项目依赖于哪些类库(比如xml,log) 其他语言的套件管理系统: node.js (npm), Ruby(gem), PHP (PEAR -> Pyrus即PEAR2 -> composer) Comoser的优点: - 可以针对项目,而非针对整个系统 - 可以检查执行环境 - 套件审核机制方便 - 设定文档编写简单,不需要用xml,而是用JSON - 不需要用官方的套件库 - 流行 - 仿造npm

用composer装oauth2-server-php v0.9(bshaffer)

从官网下载composer https://getcomposer.org/ composer是跨平台的, 这里只介绍windows使用composer 下载好了后, 进行安装. 可以选择 "Install Shell Menus", 这将会在右键菜单里面增加composer的快捷入口. composer会自动找到php.exe的位置. 也可以自定义php的位置. 下载composer.phar 该死的"墙", 连接上VPN. 我的php 5.3.3 确实够老的.

在windows下使用Composer安装ZendFramework2

首先安装Composer,可以去 这里 下载,或者到 这个中文站点 下载. 然后调出 开始->运行->cmd 进去, 然后运行下面的命令: composer create-project -sdev --repository-url="https://packages.zendframework.com" zendframework/skeleton-application path/to/install path/to/install 表示你自己的项目目录

wamp2.4+composer+rabbitmq环境部署-176

version wamp 2.4 1.打开openssl 分别更改php.ini的文件配置 E:\wamp\bin\apache\Apache2.4.4\bin\php.ini E:\wamp\bin\apache\Apache2.4.4\bin\php.ini php.ini的功能打开 extension=php_openssl.dll 2.Composer下载 https://getcomposer.org/Composer-Setup.exe 下载完成直接点下一步图型安装-- 3.php-

Simulation.Lab.Software.SimLab.Composer.2015.v6.1.MACOSX 1CD

CA Spectrum Linux VM 10.01.00.00.103 Linux 2DVD  Tahoe Design HYDROFLO v3.0.0.4 1CD  CA Spectrum Windows VM 10.01.00.00.103 Win64 2DVD  Delcam Exchange 2016 R2 CR 8.3.1005 Win64 1CD  Delcam PowerSHAPE 2016 SP2 Update only 1CD  ESI Group VA One 2015.0

windows安装composer

下载安装 https://getcomposer.org/Composer-Setup.exe   我安装到了c:/composer,没有设置环境变量. 以下检测是否安装成功. cmd 里执行安装easywechat:  e:\php\thinkcmf-master\thinkcmf5\simplewind\vendor\overtrue\wechat>d:\phpStudy\php55\php c:/composer/composer.phar install 提示如下错误:貌似是版本错误.

Mac安装composer安装Yii2项目

[注释:]本人原创,如需转载请注明来源链接! 通过安装Composer方式安装Yii 如果还没有安装 Composer,你可以按 getcomposer.org 中的方法安装. 在 Linux 和 Mac OS X 中,你可以运行如下命令: curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 步骤: 一.打开终端 二.安装composer: 1.终端输入:curl -s