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:in>php -r "readfile('https://getcomposer.org/installer');" |php //C:in 在path设置中 //创建快速启动的批处理文件 C:in>echo @php -r "readfile('https://getcomposer.org/installer');" | php //打印版本号 验证是否成功安装 C:in>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 MonologLogger('name');
$log->pushHandler(new MonologHandlerStreamHandler('app.log',MonologLogger::WARNING);
//...stuff