您的位置:首页 > 其它

composer api 参考

2016-01-18 16:25 162 查看

composer note

简介

composer
是php的依赖管理工具。可以声明项目所依赖的库,
composer
会帮我们安装上

composer
默认基于项目来管理和安装库(包),将依赖的库安装到项目的
vendor
文件夹中,默认地不全局安装任何库。

composer
之于php, 类似
npm
之于nodejs,
bundler
之于ruby

一个例子
composor.json
描述项目依赖的库


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

composer要求 php5.3.2+, 代码仓库(git/svn/hg)

安装

windows下安装
composer


自动安装

下载并运行
composer-setup.exe
,将会安装composer并设置path

手动安装

切换到工作目录,然后执行以下命令下载
composer.phar


C:\bin>php -r "readfile('https://getcomposer.org/installer');" |php
//C:\bin 在path设置中
//创建快速启动的批处理文件
C:\bin>echo @php -r "readfile('https://getcomposer.org/installer');" | php
//打印版本号 验证是否成功安装
C:\bin>composer -V


使用

下载依赖库

//composer会查找 composer.json 文件,安装json文件描述的依赖
php composer.phar install
//若全局安装了 composer, 则可以执行下面的命令
composer install

//查看帮助
php composer.phar -h


自动加载依赖的库
autoload.php


处理下载依赖库之外,
composer
同时提供了自动加载依赖库的功能. 如:

require __DIR__ . '/verdor/autoload.php'


;

;

composer基本用法

1. composer.json

composer.json
描述了项目所依赖的库和其他元数据

composer.json 示例:

{
"require": {
"monolog/monolog": "1.0.*"  // verdorName/projectName: version
}
}

包的版本号:

准确的版本号 如: 1.0.2

比较运算符表示版本范围 如: >=1.0 >=1.0 <2.0(空格或,表示and) >=1.0 <1.1 || >1.2(||表示or)

破折号表示版本范围 如: 1.0 - 2.0 等价于(>=1.0.0 <2.1) 等价于( 1.0.* - 2.0.*)

用通配符表示版本范围 如: 1.0.* 等价于(>=1.0.0 <1.1)

波浪线表示版本范围 如: ~1.2 等价于(>=1.2 <2.0) ~1.2.3 等价于(>=1.2.3 <1.3.0)

脱字符表示范围 如: ^1.2.3 等价于(>=1.2.3 <2.0)

注意: ~1.2.3 和 ^1.2.3 之间的差别

安装依赖:

把composer.json文件描述的依赖安装到项目中

//在命令行下 cd到 composer.json所在目录
php composer.phar install

安装完依赖之后,composer会将它所安装的确切的版本信息写入composer.lock文件中

composer.lock确保其他人安装时也是下载相同版本的依赖库

//更新依赖库并更新composer.lock文件
php composer.phar update
//只是更新其中1个依赖库 可以这样
php composer.phar update monolog/monolog

packagist

packagist
是主要的composer代码仓库,简单的说就是镜像源。 packagist官网

autoload.php

require 'vendor/autoload.php';

//这里可以直接使用依赖,不必理会依赖到底在哪里
//autoload.php负责帮我们找到并加载依赖
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log',Monolog\Logger::WARNING);
//...stuff
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: