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
相关文章推荐
- Nginx查看nginx.conf路径
- 硬盘分区表知识――详解硬盘MBR
- js回调函数(callback)
- python 升级安装新版本及readline
- 常用的个人网站建站系统
- GCD下 timer
- protobuf序列化存储
- MyBatis Generator配置文件翻译
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- ML的DOM解析 Java实现 使用递归解析一个XML文档
- Git 常用命令速查表(图文+表格)
- 管理小结(三)如何检查员工工作2——利用tower工具
- 关于烂代码的那些事(中)
- 1.解构Hello Objective-C程序
- 安装搜狗输入法
- 安装elasticsearch
- php 判断是否包含
- 今年你的年终奖是?看了他们的千万别哭!
- C#实现Stream与byte[]之间的转换实例教程
- 提高PHP代码质量的36个技巧